* CVE-2026-80976: seg6: reset IP6CB after IPv6 decapsulation
@ 2026-09-11 19:41 Greg Kroah-Hartman
0 siblings, 0 replies; only message in thread
From: Greg Kroah-Hartman @ 2026-09-11 19:41 UTC (permalink / raw)
To: linux-cve-announce; +Cc: Greg Kroah-Hartman
From: Greg Kroah-Hartman <gregkh@kernel.org>
Description
===========
In the Linux kernel, the following vulnerability has been resolved:
seg6: reset IP6CB after IPv6 decapsulation
decap_and_validate() pulls the outer SRv6 headers and makes the inner
packet the skb network header. The IPv6 control block still contains
values collected while parsing the outer packet, including nhoff and
extension-header flags.
End.DX6 and End.DT6 route the inner IPv6 packet directly to the IPv6
input path. An unprivileged user can reach End.DT6 from a user and net
namespace by installing a local SID and injecting an outer packet with
Hop-by-Hop and Destination Options headers followed by an SRH and a
minimal inner IPv6 packet.
The outer extension headers leave a large nhoff in IP6CB. After
decapsulation, ip6_protocol_deliver_rcu() uses that stale offset on the
inner packet and reads beyond the skb head. KASAN reports:
BUG: KASAN: slab-out-of-bounds in ip6_protocol_deliver_rcu
ip6_protocol_deliver_rcu+0x1118/0x1450
ip6_input_finish+0x11b/0x240
seg6_local_input_core+0xed/0x2e0
lwtunnel_input+0x1e9/0x4e0
ipv6_rthdr_rcv+0x525f/0x6c50
ip6_protocol_deliver_rcu+0xcb7/0x1450
Before clearing IP6CB for an inner IPv6 packet, save its incoming
interface index and L3 slave state. Restore both after the clear and set
nhoff to the inner IPv6 base-header nexthdr field.
Use IP6CB(skb)->iif rather than skb->skb_iif because VRF processing can
replace skb_iif with the L3 master while IP6CB keeps the receiving
interface. Preserve IP6SKB_L3SLAVE for the same reason.
The Linux kernel CVE team has assigned CVE-2026-80976 to this issue.
Affected and fixed versions
===========================
Issue introduced in 4.14 with commit d7a669dd2f8ba07a17423f4ad586dfc0379882f7 and fixed in 6.12.109 with commit 2b154e96fcb3f01fd42765c64e0a56820fbc16eb
Issue introduced in 4.14 with commit d7a669dd2f8ba07a17423f4ad586dfc0379882f7 and fixed in 6.18.50 with commit cfa186a0857a0f831dfca67b16bbc40ecfdf3280
Issue introduced in 4.14 with commit d7a669dd2f8ba07a17423f4ad586dfc0379882f7 and fixed in 7.2.4 with commit c73fb911e02b9a766c950bc9707f3e3a96ffd702
Issue introduced in 4.14 with commit d7a669dd2f8ba07a17423f4ad586dfc0379882f7 and fixed in 7.3-rc1 with commit f967455fb2a5a2079b9eb5823e9ccf359174bf9f
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-80976
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/seg6_local.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/2b154e96fcb3f01fd42765c64e0a56820fbc16eb
https://git.kernel.org/stable/c/cfa186a0857a0f831dfca67b16bbc40ecfdf3280
https://git.kernel.org/stable/c/c73fb911e02b9a766c950bc9707f3e3a96ffd702
https://git.kernel.org/stable/c/f967455fb2a5a2079b9eb5823e9ccf359174bf9f
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-09-11 19:47 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-11 19:41 CVE-2026-80976: seg6: reset IP6CB after IPv6 decapsulation Greg Kroah-Hartman
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.