KernelScan.io

CRITICAL

net/ipv6 IOAM Overflow

CVE-2026-43186

CVSS 9.8 / 10.0 NVD

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

KernelScan AI8.6HIGH

01

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).

02

Engine v0.2.0

Risk summary

Remote attackers can send crafted IPv6 IOAM packets to trigger a heap buffer overflow, corrupting kernel memory and causing system crashes. This affects systems with IPv6 and IOAM enabled that process network traffic.

Affectednet/ipv6/exthdrs.c (IPv6 IOAM)

Vulnerability analysis

The vulnerability occurs in __ioam6_fill_trace_data() which trusts the nodelen field from incoming IPv6 IOAM packets without validating it against the type field. An attacker can set nodelen=0 while setting type bits 0-21, causing ~100 bytes to be written past the allocated buffer into skb_shared_info, corrupting adjacent heap memory. The fix adds ioam6_trace_compute_nodelen() to derive expected nodelen from the type field and validates consistency in the receive path before writing data. This is network-reachable from any source that can send IPv6 packets to systems with IOAM processing enabled.

03

BranchFixed inPatch commit
5.155.15.202f4d9d4b8fd83
6.16.1.165fb3c662fafeb
6.126.12.750591d6509c2f
6.186.18.16e90346a2f1e8
6.196.19.6ea3632aefc04
6.66.6.128632d233cf2e6
mainline7.06db8b56eed62