CVE-2026-80976: seg6: reset IP6CB after IPv6 decapsulation

Published Sep 11, 2026
·
Updated

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

seg6: reset IP6CB after IPv6 decapsulation

decapandvalidate() 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, ip6protocoldeliverrcu() uses that stale offset on the inner packet and reads beyond the skb head. KASAN reports:

BUG: KASAN: slab-out-of-bounds in ip6protocoldeliverrcu ip6protocoldeliverrcu+0x1118/0x1450 ip6inputfinish+0x11b/0x240 seg6localinputcore+0xed/0x2e0 lwtunnelinput+0x1e9/0x4e0 ipv6rthdrrcv+0x525f/0x6c50 ip6protocoldeliverrcu+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->skbiif because VRF processing can replace skbiif with the L3 master while IP6CB keeps the receiving interface. Preserve IP6SKBL3SLAVE for the same reason.

Affected Software

1 affected component
Linux Kernel Linux kernel

Event History

Sep 11, 2026
CVE Published
via MITRE·07:42 PM
Data Sourced
via MITRE·07:42 PM
Description

Frequently Asked Questions

1

Who can reach the vulnerable processing path?

The described path can be reached by an unprivileged user operating from a user namespace and network namespace. They must be able to install a local SID and inject the crafted outer IPv6 packet.

2

What packet conditions are required to trigger the out-of-bounds read?

The attacker needs an outer packet containing Hop-by-Hop and Destination Options headers followed by an SRH, with a minimal inner IPv6 packet. The stale extension-header offset is then used after decapsulation when the inner packet is sent to the IPv6 input path through End.DT6; End.DX6 also routes inner IPv6 packets directly to that path.

3

How might an affected system appear during testing or incident investigation?

KASAN can report a slab-out-of-bounds error in ip6_protocol_deliver_rcu(). The reported call path includes ip6_input_finish, seg6_local_input_core, lwtunnel_input, ipv6_rthdr_rcv, and ip6_protocol_deliver_rcu.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203