CVE-2026-89783

xfrm6: fix out-of-bounds write in xfrm6_input_addr() when secpath is full

State
Published
Severity
9.8 Critical
Published
Sep 16, 2026
Updated
Oct 19, 2026
Reserved
Sep 11, 2026

Read the record on cve.org

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]'

Scores

CVSSScoreVectorSource
3.19.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 9473e1f631de339c50bde1e3bd09e1045fe90fd5 to before 91fc387f63c00ddfb5221127a17bac97549a8343Affected
  • 9473e1f631de339c50bde1e3bd09e1045fe90fd5 to before 68e8737fe8e72f085c608cff322b3d2de8340af1Affected
  • 9473e1f631de339c50bde1e3bd09e1045fe90fd5 to before 8fe2c53fb81f5ad5be43af2ad09583f7c78b4b77Affected
  • 9473e1f631de339c50bde1e3bd09e1045fe90fd5 to before bdcda866c89f9a8b1acdabf02d26cde9fbe501d8Affected
  • 9473e1f631de339c50bde1e3bd09e1045fe90fd5 to before 48996649222e95008cdb98cd58579e3fc8e5ee06Affected
  • 9473e1f631de339c50bde1e3bd09e1045fe90fd5 to before 0f679e0523ddfff3fb554336ceb874b0e51e9cd3Affected
  • 9473e1f631de339c50bde1e3bd09e1045fe90fd5 to before 5f35a29a5eed3d80befd32050843ac88dea3d61aAffected
  • 9473e1f631de339c50bde1e3bd09e1045fe90fd5 to before 5d9e3bf34fec9a5d237e4b7cef4a707bc2e091bcAffected
LinuxLinux
  • 2.6.25Affected
  • before 2.6.25Not affected
  • 5.10.270 through 5.10.*Not affected
  • 5.15.221 through 5.15.*Not affected
  • 6.1.188 through 6.1.*Not affected
  • 6.6.157 through 6.6.*Not affected
  • 6.12.110 through 6.12.*Not affected
  • 6.18.52 through 6.18.*Not affected
  • 7.2.6 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.