CVE-2026-98096 ipv6: sr: restore network header before routing and forwarding
A flaw in the Linux kernel IPv6 Segment Routing header processing allows out-of-bounds memory access, potentially leading to code execution or system crashes.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-98096?
CVE-2026-98096 is a high-severity memory corruption vulnerability in Linux kernel, published on 25 Sep 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
In the Linux kernel, the following vulnerability has been resolved:
ipv6: sr: restore network header before routing and forwarding
ipv6_srh_rcv() runs with skb->data at the Segment Routing Header (SRH) while skb_network_header() points at the IPv6 header.
When segments_left > 0, ipv6_srh_rcv() previously restored the skb->data position by pushing sizeof(struct ipv6hdr), assuming the SRH immediately followed the fixed IPv6 header. If another extension header (such as a Hop-by-Hop options header) precedes the SRH, skb_network_offset() remained negative.
This led to two problems: 1. During ip6_route_input(), fib6_rules_early_flow_dissect() invokes __skb_flow_dissect() which passes the negative skb_network_offset() to flow dissection, breaking BPF and C flow dissector logic. 2. If forwarded via ip6_forward() or redirected via act_mirred, downstream handlers (like sch_fragment() or neighbour output) pass the negative offset as an unsigned length, triggering OOB memcpy or buffer overflows.
Fix this by pushing -skb_network_offset(skb) before routing, ensuring skb_network_offset(skb) is 0 for route lookup / flow dissection as well as downstream forwarding. On the loopback path, pull skb_transport_offset(skb) to restore skb->data to the SRH before looping back.
Weakness: CWE-787
Which versions are affected by CVE-2026-98096?
It affects 1 product.
Products include Linux kernel.
How do I fix CVE-2026-98096?
Apply the vendor's patch.
Upgrade to the fixed version. Memory-safe languages, compiler hardening and fuzzing prevent most new cases. More about Memory corruption.
Is CVE-2026-98096 being exploited?
There is no known exploitation of CVE-2026-98096 in the wild and no public exploit code.
Other vulnerabilities in Linux kernel
Sources
Also known as AZL-104559, BELL-CVE-2026-98096, DEBIAN-CVE-2026-98096, GHSA-qgrh-x7hc-r5h3, UBUNTU-CVE-2026-98096.