Description
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:

1. 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.

2. 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.

3. 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.

4. 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:
- If the inner packet is CHECKSUM_PARTIAL, Local Checksum Offload computes
the outer checksum in software and the device offloads only the inner L4
checksum.
- If the inner packet is CHECKSUM_NONE (e.g., SCTP-in-UDP, ESP-in-UDP,
Remote Checksum Offload), the device offloads the outer UDP or GRE
checksum instead.

GSO skb:
- A device with NETIF_F_GSO_UDP_TUNNEL_CSUM or NETIF_F_GSO_GRE_CSUM
computes both inner and outer checksums per segment.
The outer checksum is seeded with only the pseudo-header checksum.

A NETIF_F_IPV6_CSUM device must parse through the outer headers to
reach the inner ones.
Published: 2026-10-18
Score: 5.9 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service via Erroneous Packet Dropping
Action: Patch
AI Analysis

Impact

The flaw resides in the Linux kernel’s IPv6 extension header parsing when handling tunneled traffic. The kernel incorrectly treats certain outer extension headers as malformed and drops the packet, or mistakenly spans headers across the outer tunnel boundary, leading to false positives. Because the kernel dereferences pointers without verifying the presence of inner headers, malformed or crafted packets cause the kernel to drop them. The outcome is a loss of connectivity for applications that rely on IPv6 tunnels such as GRE, ip6_tunnel, or SCTP-in-UDP, and the functionality of the host may be reduced or halted for sustained traffic.

Affected Systems

All Linux kernel releases that have not yet incorporated commit c4336a07eb6b, which corrects the IPv6 extension header detection logic, are affected. This includes every distribution’s kernel version at the time of the CVE, as the vulnerability is present across the entire IPv6 networking stack of the Linux kernel.

Risk and Exploitability

The CVSS score of 5.9 indicates moderate severity, while the EPSS score is listed as less than 1%, implying a low current probability of exploitation. The vulnerability is not currently in the CISA KEV catalog. Based on the description, it is inferred that an attacker may craft tunneled IPv6 traffic that triggers the kernel’s mis‑parsing, causing it to drop packets. By sending such traffic from a remote network site, an attacker could degrade or deny services that depend on tunneled IPv6 connections.

Generated by OpenCVE AI on October 24, 2026 at 04:35 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply the kernel commit that corrects the IPv6 extension header detection logic (identified by commit c4336a07eb6b) or update to a kernel version that includes the fix
  • If upgrading the kernel is not immediately possible, block or filter IPv6 tunneled traffic (GRE, ip6_tunnel, ip6_gre) at the firewall or gateway to prevent the malformed packets from reaching the host
  • Temporarily disable checksum offloading for tunneled packets by clearing NETIF_F_IPV6_CSUM or related flags on the network interface until a proper fix is applied

Generated by OpenCVE AI on October 24, 2026 at 04:35 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4850-1 linux-6.12 security update
History

Sat, 24 Oct 2026 03:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416
CWE-665

Sat, 24 Oct 2026 00:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-125
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.9, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Moderate


Wed, 21 Oct 2026 13:15:00 +0000


Sun, 18 Oct 2026 21:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416
CWE-665

Sun, 18 Oct 2026 16:00:00 +0000

Type Values Removed Values Added
Description 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: 1. 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. 2. 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. 3. 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. 4. 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: - If the inner packet is CHECKSUM_PARTIAL, Local Checksum Offload computes the outer checksum in software and the device offloads only the inner L4 checksum. - If the inner packet is CHECKSUM_NONE (e.g., SCTP-in-UDP, ESP-in-UDP, Remote Checksum Offload), the device offloads the outer UDP or GRE checksum instead. GSO skb: - A device with NETIF_F_GSO_UDP_TUNNEL_CSUM or NETIF_F_GSO_GRE_CSUM computes both inner and outer checksums per segment. The outer checksum is seeded with only the pseudo-header checksum. A NETIF_F_IPV6_CSUM device must parse through the outer headers to reach the inner ones.
Title net: extend IPv6 exthdr detection of tunneled packets
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-21T12:57:32.027Z

Reserved: 2026-09-25T10:25:14.376Z

Link: CVE-2026-98852

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-18T16:17:39.593

Modified: 2026-10-21T13:21:49.790

Link: CVE-2026-98852

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-10-18T00:00:00Z

Links: CVE-2026-98852 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-24T04:45:16Z

Weaknesses