Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Reaching the write needs a full nested secpath plus Mobile IPv6 header (AC:H); write stays within allocation so C:N/I:N; impact is a panic under panic_on_warn, hence A:H.
Primary rating from Vendor (Linux).
CVSS VectorVendor: Linux
Lifecycle Timeline
5DescriptionCVE.org
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]'
Articles & Coverage 1
AnalysisAI
IPv6 IPsec receive processing in the Linux kernel writes one element past the end of the six-slot xfrm_state pointer array in xfrm6_input_addr(), because the depth guard tests '1 + sp->len == XFRM_MAX_DEPTH' instead of '>=', so a secpath already stacked to XFRM_MAX_DEPTH by xfrm_input() and preserved across xfrm_trans_reinject() bypasses the check and stores into sp->xvec[sp->len++]. The attacker must control an inner packet carrying a Mobile IPv6 destination-options Home Address option or a type-2 routing header, and because the write stays inside the larger sec_path allocation it is invisible to KASAN - it is only flagged by UBSAN_BOUNDS and only fatal when the non-default panic_on_warn sysctl is enabled, otherwise it is a logged warning with no functional effect. …
Unlock full vulnerability intelligence
- Risk assessment & exploitation conditions
- Attack chain visualization
- Remediation with exact patch versions
- Threat intelligence from 22 sources
- Personal watchlist & email alerts
Free forever · No credit card required
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata
Vulnerability AssessmentAI
| Exploitation | Requires the host to use the IPv6 IPsec (xfrm) transport-mode receive path with a secpath stacked to XFRM_MAX_DEPTH (6 nested SA transforms), reached via xfrm_trans_reinject(), and an inner packet carrying either a destination-options Home Address (HAO) option or a type-2 routing header (Mobile IPv6 constructs). … Additional conditions and limiting factors are described in the full assessment. |
| Risk Assessment | The input CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/C:H/I:H/A:H = 9.8) is the generic maximal score auto-assigned to Linux kernel CVEs and is not credible for this specific bug. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in. |
| Exploit Scenario | Full exploit scenario with step-by-step reproduction available after sign-in. |
| Remediation | Vendor-released patch: upgrade to the fixed kernel for your branch - 5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.110, 6.18.52, or 7.2.6 (with 7.3-rc1 as the mainline fix) - or cherry-pick the corresponding stable commit (5f35a29a5eed3d80befd32050843ac88dea3d61a, 91fc387f63c00ddfb5221127a17bac97549a8343, 8fe2c53fb81f5ad5be43af2ad09583f7c78b4b77, 48996649222e95008cdb98cd58579e3fc8e5ee06, bdcda866c89f9a8b1acdabf02d26cde9fbe501d8, 68e8737fe8e72f085c608cff322b3d2de8340af1, 0f679e0523ddfff3fb554336ceb874b0e51e9cd3, 5d9e3bf34fec9a5d237e4b7cef4a707bc2e091bc), which replaces the erroneous '1 + sp->len == XFRM_MAX_DEPTH' test with 'sp->len >= XFRM_MAX_DEPTH'. … Detailed patch versions, workarounds, and compensating controls in full report. |
Recommended ActionAI
Within 24 hours, inventory Linux kernel systems and determine whether IPv6 IPsec is enabled and whether kernel.panic_on_warn=1 (the non-default setting that makes this flaw fatal); apply the vendor-released patch per the vendor advisory for CVE-2026-89783 as soon as the distribution-specific fixed kernel package is available (Patch available per vendor advisory), noting that no exact fixed version was provided in the input. …
Sign in for detailed remediation steps and compensating controls.
Threat intelligence, references, and detailed analysis are available after sign-in.
Same technique Buffer Overflow
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-80304
GHSA-w5hj-mmmx-p42j