CVE-2026-98852None▾ SunlitIn the Linux kernel, the following vulnerability has been resolved: net: extend IPv6 exthdr detection of tunneled packets Commit c4336a07eb6b ("net: correctly handle tunneled traffic on IPV6_CSUM GSO fallback") split skb_gso_has_extens…
▾ Sunlit zone — Low / medium · no exploitation signal
impact 2.8 · likelihood 0 · exploitation 0
Need a working PoC? Pro members can cast a request and our team develops one — it lands right here.
In the Linux kernel, the following vulnerability has been resolved:
net: extend IPv6 exthdr detection of tunneled packets
Commit c4336a07eb6b ("net: correctly handle tunneled traffic on IPV6_CSUM GSO fallback") split skb_gso_has_extension_hdr() into mutually exclusive branches on skb->encapsulation. This did not yet address all paths:
With skb->encapsulation set, the outer header is not checked. IPv6 tunnels such as ip6_gre and ip6_tunnel add an outer Destination Options header by default (encap_limit). Their GSO packets skip software GSO, then skb_csum_hwoffload_help() sees the outer extension header and calls skb_checksum_help() on the GSO skb, which warns and drops it.
Tunnels over IPv6 without an outer transport header, such as ip6_tunnel, leave skb->transport_header at the inner transport header. skb_network_header_len() then spans the outer IPv6, tunnel and inner IP headers, a false positive.
UDP tunnels without an inner network header, such as SCTP-in-UDP or PSP, have no inner IPv6 header to check. Decide on the outer header alone.
Directly dereferencing inner_ip_hdr(skb)->version without skb_header_pointer() is unsafe.
Instead, check ipv6_ext_hdr(nexthdr) on the outer IPv6 header and, if set, on the inner IPv6 header. Read the headers with skb_header_pointer(). Keep the skb_network_header_len() check when !skb->encapsulation to also catch encapsulated packets without skb->encapsulation (e.g., virtio).
Use the same helper in skb_csum_hwoffload_help(). Its open coded test has the false positive of (2) and ignores the inner header.
Background: checksum offload of tunneled packets invariants:
Non-GSO skb:
GSO skb:
A NETIF_F_IPV6_CSUM device must parse through the outer headers to reach the inner ones.
Linux >= 33670f780e0120c3dacda188c512bbffe0b6044c < 44ba9dc568c878b699d05e7cf699572dc9df4b59Linux >= a98b78116a27e2a57b696b569b2cb431c95cf9b6 < aa480f05aed7a9eee87d4a6fc90647fe9679c670Linux >= c4336a07eb6b2526dc2b62928b5104b41a7f81f5 < cabacdf98e09eb74599c4d97d7bd7fd659598fb7Linux >= c4336a07eb6b2526dc2b62928b5104b41a7f81f5 < 5f0764cb1c81a9712bce605d38efe6d844a70b29Linux 2094a7cf91b71367b649f991aacc7b579f793d0bLinux ed71cf465c75f5688b07a35d373cd1d6b589c8eaLinux 732fdeb2987c94b439d51f5cb9addddc2fc48c42Linux >= 6.12.81 < 6.12.113Linux >= 6.18.22 < 6.18.56Linux >= 6.1.168 < 6.2Linux >= 6.6.134 < 6.7Linux >= 6.19.12 < 6.20Linux 7.0Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
Connected by shared product, vendor, weakness, or advisory.
CVE-2026-98768Noneusb: typec: anx7411 - stop the IRQ before destroying the workqueue
CVE-2026-98770Noneusb: gadget: midi2: Fix the jack descriptor array sizes
CVE-2026-98769Noneusb: gadget: f_uac1_legacy: validate bRequest index in generic_{set,get}_cmd
CVE-2026-98774Nonerust_binder: cancel deferred work items in thread exit
CVE-2026-98772NoneUSB: serial: fix port tear down use-after-free
CVE-2026-98771Noneusb: storage: sierra_ms: reject short SWoC info transfers