CVE-2026-64132: ipv6: ioam: refresh hdr pointer before ioam6_event()
Greg Kroah-Hartman <[email protected]>
| Newsgroups | org.kernel.vger.linux-cve-announce |
|---|---|
| Message-ID | <2026071927-CVE-2026-64132-dd76@gregkh> |
From: Greg Kroah-Hartman <[email protected]> Description =========== In the Linux kernel, the following vulnerability has been resolved: ipv6: ioam: refresh hdr pointer before ioam6_event() Reported by Sashiko: In ipv6_hop_ioam(), the hdr pointer is initialized to point into the skb's linear data buffer. Later, the code calls skb_ensure_writable(), which might reallocate the buffer: if (skb_ensure_writable(skb, optoff + 2 + hdr->opt_len)) goto drop; /* Trace pointer may have changed */ trace = (struct ioam6_trace_hdr *)(skb_network_header(skb) + optoff + sizeof(*hdr)); ioam6_fill_trace_data(skb, ns, trace, true); ioam6_event(IOAM6_EVENT_TRACE, dev_net(skb->dev), GFP_ATOMIC, (void *)trace, hdr->opt_len - 2); If the skb is cloned or lacks sufficient linear headroom, skb_ensure_writable() will invoke pskb_expand_head(), which reallocates the skb's data buffer and frees the old one, invalidating pointers to it. While the code recalculates the trace pointer immediately after the call to skb_ensure_writable(), it fails to recalculate the hdr pointer. This patch fixes the above by recalculating the hdr pointer before passing hdr->opt_len to ioam6_event(), so that we avoid any UaF. The Linux kernel CVE team has assigned CVE-2026-64132 to this issue. Affected and fixed versions =========================== Issue introduced in 6.9 with commit f655c78d6225f585ef60a9d93ffb79d507ff3ad3 and fixed in 6.12.92 with commit 769723124b7c3b2bfea4cf68ad292698b87c8d01 Issue introduced in 6.9 with commit f655c78d6225f585ef60a9d93ffb79d507ff3ad3 and fixed in 6.18.34 with commit 24de676da63c1122d2c13b0d546238b66d1b4e62 Issue introduced in 6.9 with commit f655c78d6225f585ef60a9d93ffb79d507ff3ad3 and fixed in 7.0.11 with commit 5af905aa8e91ff8d94572a1e089558f21dcf24ed Issue introduced in 6.9 with commit f655c78d6225f585ef60a9d93ffb79d507ff3ad3 and fixed in 7.1 with commit e46e6bc97fb1f339730ff1ba74267fbf48e7a422 Please see https://www.kernel.org for a full list of currently supported kernel versions by the kernel community. Unaffected versions might change over time as fixes are backported to older supported kernel versions. The official CVE entry at https://cve.org/CVERecord/?id=CVE-2026-64132 will be updated if fixes are backported, please check that for the most up to date information about this issue. Affected files ============== The file(s) affected by this issue are: net/ipv6/exthdrs.c Mitigation ========== The Linux kernel CVE team recommends that you update to the latest stable kernel version for this, and many other bugfixes. Individual changes are never tested alone, but rather are part of a larger kernel release. Cherry-picking individual commits is not recommended or supported by the Linux kernel community at all. If however, updating to the latest release is impossible, the individual changes to resolve this issue can be found at these commits: https://git.kernel.org/stable/c/769723124b7c3b2bfea4cf68ad292698b87c8d01 https://git.kernel.org/stable/c/24de676da63c1122d2c13b0d546238b66d1b4e62 https://git.kernel.org/stable/c/5af905aa8e91ff8d94572a1e089558f21dcf24ed https://git.kernel.org/stable/c/e46e6bc97fb1f339730ff1ba74267fbf48e7a422