CVE-2026-43186

ipv6: ioam: fix heap buffer overflow in __ioam6_fill_trace_data()

State
Published
Severity
9.8 Critical
Published
May 6, 2026
Updated
Oct 19, 2026
Reserved
May 1, 2026

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

ipv6: ioam: fix heap buffer overflow in __ioam6_fill_trace_data()

On the receive path, __ioam6_fill_trace_data() uses trace->nodelen to decide how much data to write for each node. It trusts this field as-is from the incoming packet, with no consistency check against trace->type (the 24-bit field that tells which data items are present). A crafted packet can set nodelen=0 while setting type bits 0-21, causing the function to write ~100 bytes past the allocated region (into skb_shared_info), which corrupts adjacent heap memory and leads to a kernel panic.

Add a shared helper ioam6_trace_compute_nodelen() in ioam6.c to derive the expected nodelen from the type field, and use it:

- in ioam6_iptunnel.c (send path, existing validation) to replace the open-coded computation; - in exthdrs.c (receive path, ipv6_hop_ioam) to drop packets whose nodelen is inconsistent with the type field, before any data is written.

Per RFC 9197, bits 12-21 are each short (4-octet) fields, so they are included in IOAM6_MASK_SHORT_FIELDS (changed from 0xff100000 to 0xff1ffc00).

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

Affected Products

ProductVersions
LinuxLinux
  • 9ee11f0fff205b4b3df9750bff5e94f97c71b6a0 to before f4d9d4b8fd839719d564651671e24c62c545c23bAffected
  • 9ee11f0fff205b4b3df9750bff5e94f97c71b6a0 to before fb3c662fafebc5b9d74417ed1de8759f6bb72143Affected
  • 9ee11f0fff205b4b3df9750bff5e94f97c71b6a0 to before 632d233cf2e64a46865ae2c064ae3c9df7c8864fAffected
  • 9ee11f0fff205b4b3df9750bff5e94f97c71b6a0 to before 0591d6509c2ff13f09ea2998434aba0c0472e978Affected
  • 9ee11f0fff205b4b3df9750bff5e94f97c71b6a0 to before e90346a2f1e8917d5760a44a1f61c44e3b36d96bAffected
  • 9ee11f0fff205b4b3df9750bff5e94f97c71b6a0 to before ea3632aefc04205436868541638e26f4a74d5637Affected
  • 9ee11f0fff205b4b3df9750bff5e94f97c71b6a0 to before 6db8b56eed62baacaf37486e83378a72635c04ccAffected
LinuxLinux
  • 5.15Affected
  • before 5.15Not affected
  • 5.15.202 through 5.15.*Not affected
  • 6.1.165 through 6.1.*Not affected
  • 6.6.128 through 6.6.*Not affected
  • 6.12.75 through 6.12.*Not affected
  • 6.18.16 through 6.18.*Not affected
  • 6.19.6 through 6.19.*Not affected
  • 7.0 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.