OCTOBER 7, 2026
Live Feed
Back to database
Case File

CVE-2026-89783

CRITICAL · CVSS 9.8 EPSS 0.76%

Source: NVD + CISA KEV + EPSS · Published 2026-09-16 · Last synced 2026-10-07

CyberRota Analysis

AI-Generated

The vulnerability affects the Linux kernel's xfrm6_input_addr() function, which can lead to an out-of-bounds write when the security path (secpath) is full. This flaw allows for potential memory corruption, which could be exploited to cause system instability or crashes, particularly when processing certain IPv6 packets with specific options. Organizations using affected Linux kernel versions should prioritize patching this vulnerability to mitigate risks associated with system reliability and security.

CVE
CVE-2026-89783
Severity
CRITICAL
CVSS
9.8
EPSS
0.76%
Linux

Original NVD Description

In the Linux kernel, the following vulnerability has been resolved: xfrm6: fix out-of-bounds write in xfrm6_input_addr() when secpath is full The depth check in xfrm6_input_addr() is off by one: if (1 + sp->len == XFRM_MAX_DEPTH) goto drop; ... sp->xvec[sp->len++] = x; xfrm_input() can leave sp->len == XFRM_MAX_DEPTH, and the transport-mode receive path re-enters IPv6 input via xfrm_trans_reinject() with that secpath preserved. If the inner packet carries a destination-options HAO option or a type-2 routing header, xfrm6_input_addr() is called with sp->len == XFRM_MAX_DEPTH; the check (1 + 6 == 6) is false, so sp->xvec[sp->len++] writes one slot past the 6-element xvec[]. The write stays within the sec_path allocation (invisible to KASAN); UBSAN_BOUNDS flags it and panics under panic_on_warn. Use "sp->len >= XFRM_MAX_DEPTH", matching xfrm_input(). This also restores one chain level the old check rejected at sp->len == 5. UBSAN: array-index-out-of-bounds in net/ipv6/xfrm6_input.c:309:10 index 6 is out of range for type 'xfrm_state *[6]'