{"id":41324,"date":"2026-10-19T00:33:13","date_gmt":"2026-10-18T16:33:13","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98852"},"modified":"2026-10-19T00:33:13","modified_gmt":"2026-10-18T16:33:13","slug":"cve-2026-98852","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98852","title":{"rendered":"CVE-2026-98852 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nnet: extend IPv6 exth"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>net: extend IPv6 exthdr detection of tunneled packets<\/p>\n<p>Commit c4336a07eb6b (&#8220;net: correctly handle tunneled traffic on IPV6_CSUM<br \/>\nGSO fallback&#8221;) split skb_gso_has_extension_hdr() into mutually exclusive<br \/>\nbranches on skb-&gt;encapsulation. This did not yet address all paths:<\/p>\n<p>1. With skb-&gt;encapsulation set, the outer header is not checked. IPv6<br \/>\n   tunnels such as ip6_gre and ip6_tunnel add an outer Destination<br \/>\n   Options header by default (encap_limit). Their GSO packets skip<br \/>\n   software GSO, then skb_csum_hwoffload_help() sees the outer extension<br \/>\n   header and calls skb_checksum_help() on the GSO skb, which warns and<br \/>\n   drops it.<\/p>\n<p>2. Tunnels over IPv6 without an outer transport header, such as<br \/>\n   ip6_tunnel, leave skb-&gt;transport_header at the inner transport<br \/>\n   header. skb_network_header_len() then spans the outer IPv6, tunnel<br \/>\n   and inner IP headers, a false positive.<\/p>\n<p>3. UDP tunnels without an inner network header, such as SCTP-in-UDP or<br \/>\n   PSP, have no inner IPv6 header to check. Decide on the outer header<br \/>\n   alone.<\/p>\n<p>4. Directly dereferencing inner_ip_hdr(skb)-&gt;version without<br \/>\n   skb_header_pointer() is unsafe.<\/p>\n<p>Instead, check ipv6_ext_hdr(nexthdr) on the outer IPv6 header and, if<br \/>\nset, on the inner IPv6 header. Read the headers with skb_header_pointer().<br \/>\nKeep the skb_network_header_len() check when !skb-&gt;encapsulation to also<br \/>\ncatch encapsulated packets without skb-&gt;encapsulation (e.g., virtio).<\/p>\n<p>Use the same helper in skb_csum_hwoffload_help(). Its open coded test<br \/>\nhas the false positive of (2) and ignores the inner header.<\/p>\n<p>Background: checksum offload of tunneled packets invariants:<\/p>\n<p>Non-GSO skb:<br \/>\n&#8211; If the inner packet is CHECKSUM_PARTIAL, Local Checksum Offload computes<br \/>\n  the outer checksum in software and the device offloads only the inner L4<br \/>\n  checksum.<br \/>\n&#8211; If the inner packet is CHECKSUM_NONE (e.g., SCTP-in-UDP, ESP-in-UDP,<br \/>\n  Remote Checksum Offload), the device offloads the outer UDP or GRE<br \/>\n  checksum instead.<\/p>\n<p>GSO skb:<br \/>\n&#8211; A device with NETIF_F_GSO_UDP_TUNNEL_CSUM or NETIF_F_GSO_GRE_CSUM<br \/>\n  computes both inner and outer checksums per segment.<br \/>\n  The outer checksum is seeded with only the pseudo-header checksum.<\/p>\n<p>A NETIF_F_IPV6_CSUM device must parse through the outer headers to<br \/>\nreach the inner ones.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>net: extend IPv6 exthdr detection of tunneled packets<\/p>\n<p>Commit c4336a07eb6b (&#8220;net: correctly handle tunneled traffic on IPV6_CSUM<br \/>\nGS<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-41324","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/41324","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=41324"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=41324"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=41324"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}