Critical severity · published Sep 11, 2026
CVE-2026-80976
seg6: reset IP6CB after IPv6 decapsulation
9.8
CVSS
0.7%
EPSS
No
On KEV
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.
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Attack vector
Network
Complexity
Low
Privileges
None
User interaction
None
Confidentiality
High
Integrity
High
Availability
High
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)0.7% · higher than 53% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
LI
Linux · Linux
d7a669dd2f8ba07a17423f4ad586dfc0379882f7 before d1f0d353358987ca87f21d8956e2d2854951130d; d7a669dd2f8ba07a17423f4ad586dfc0379882f7 before a0e2b0a3718f0cf9fb0ee41710b4a6348a7315c8; d7a669dd2f8ba07a17423f4ad586dfc0379882f7 before 9ae92198c24d7dacd4070e2f34f6e1ed3a63061c; d7a669dd2f8ba07a17423f4ad586dfc0379882f7 before 96c74420ac92930a7e0f21770818544eee4a93d7; d7a669dd2f8ba07a17423f4ad586dfc0379882f7 before 2b154e96fcb3f01fd42765c64e0a56820fbc16eb; d7a669dd2f8ba07a17423f4ad586dfc0379882f7 before cfa186a0857a0f831dfca67b16bbc40ecfdf3280; +3 more · source: vendor
References
NVD
https://nvd.nist.gov/vuln/detail/CVE-2026-80976
CVE.org
https://www.cve.org/CVERecord?id=CVE-2026-80976
git.kernel.org
https://git.kernel.org/stable/c/2b154e96fcb3f01fd42765c64e0a56820fbc16eb
git.kernel.org
https://git.kernel.org/stable/c/96c74420ac92930a7e0f21770818544eee4a93d7
git.kernel.org
https://git.kernel.org/stable/c/9ae92198c24d7dacd4070e2f34f6e1ed3a63061c
git.kernel.org
https://git.kernel.org/stable/c/a0e2b0a3718f0cf9fb0ee41710b4a6348a7315c8
git.kernel.org
https://git.kernel.org/stable/c/c73fb911e02b9a766c950bc9707f3e3a96ffd702
git.kernel.org
https://git.kernel.org/stable/c/cfa186a0857a0f831dfca67b16bbc40ecfdf3280
More from Linux
9.8
CVE-2025-39682
tls: fix handling of zero-length records on the rx_list
8.8
CVE-2026-53266
netfilter: bridge: make ebt_snat ARP rewrite writable
7.8
CVE-2026-53362
ipv6: account for fraggap on the paged allocation path
7.8
CVE-2026-31431
crypto: algif_aead - Revert to operating out-of-place
7.8
CVE-2025-38352
posix-cpu-timers: fix race between handle_posix_cpu_timers() and posix_cpu_timer_del()
