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

ip6_tunnel: use skb_cow_head() in ip6_tnl_xmit()

ip6_tnl_xmit() may need to expand headroom before it can push the
outer IPv6 and optional encap headers. It currently does that with
skb_realloc_headroom(), copies skb->sk ownership, consumes the original
skb, and then continues processing with the replacement skb kept only in
its local variable.

That is safe only if the helper cannot fail afterwards. But this helper
still has post-reallocation error exits. collect_md tunnels reject
non-NONE encap after the replacement, and ip6_tnl_encap() can also fail
later. In those cases the helper returns an error to its callers while
the caller still only has the original skb pointer.

Both ip6_tnl_start_xmit() and the IPv6 GRE paths free the caller skb on
error, so they can end up freeing an skb that ip6_tnl_xmit() already
consumed.

Use skb_cow_head() instead. It provides the required headroom and
writability without privately replacing the caller-owned skb, so later
error returns cannot leave callers with a stale pointer.

The Ethernet users, ip6gretap and ip6erspan, clear IFF_TX_SKB_SHARING
and already call skb_cow_head() before entering ip6_tnl_xmit(). They do
not rely on the removed skb_shared() reallocation. This also makes the
IPv6 tunnel path consistent with ip_tunnel_xmit().
Published: 2026-09-11
Score: 7.8 High
EPSS: < 1% Very Low
KEV: No
Impact: Memory corruption in kernel
Action: Apply patch
AI Analysis

Impact

The vulnerability in the Linux kernel occurs when ip6_tnl_xmit() expands headroom for IPv6 tunnel headers using skb_realloc_headroom(). If that helper fails after expansion, subsequent error handling can free an original socket buffer that has already been consumed, leading to a stale pointer and potential double‑free or memory corruption. This flaw is a classic instance of improper error handling on kernel data structures (CWE‑1341) and can compromise system integrity by corrupting kernel memory. The developer mitigation replaces skb_realloc_headroom() with skb_cow_head(), making the headroom allocation safe even after failures, and aligns the tunnel path with other IP tunnel implementations.

Affected Systems

The issue affects the Linux kernel itself, as specified by the kernel vendor entries and the corresponding CPE string. All kernel versions prior to the patch that include the vulnerable ip6_tnl_xmit() implementation are impacted. Exact vulnerable version ranges are not listed, so any fix should be regarded as at risk.

Risk and Exploitability

The CVSS score of 4.4 classifies this as Low severity. EPSS score is < 1%, and the vulnerability is not listed in the CISA KEV catalog, indicating a low likely attack vector is inferred to be delivery of malformed IPv6 tunnel packets from an external or internal attacker, which could trigger the faulty path during packet transmission. However, since the flaw requires specific failure conditions in the reallocation helper, it is considered non‑easily exploitable without further research.

Generated by OpenCVE AI on September 13, 2026 at 04:56 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the Linux kernel to a version that includes the skb_cow_head() change in ip6_tnl_xmit().
  • If an update is not yet available, apply the upstream patch that replaces skb_realloc_headroom() with skb_cow_head() in the ip6_tnl_xmit() function.
  • Verify kernel configuration for tunnel interfaces and ensure no custom modules override the standard IPv6 tunnel handling paths.

Generated by OpenCVE AI on September 13, 2026 at 04:56 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sun, 13 Sep 2026 06:45:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

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

cvssV3_1

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


Sat, 12 Sep 2026 00:15:00 +0000

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

None

cvssV3_1

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

threat_severity

Moderate


Fri, 11 Sep 2026 23:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: ip6_tunnel: use skb_cow_head() in ip6_tnl_xmit() ip6_tnl_xmit() may need to expand headroom before it can push the outer IPv6 and optional encap headers. It currently does that with skb_realloc_headroom(), copies skb->sk ownership, consumes the original skb, and then continues processing with the replacement skb kept only in its local variable. That is safe only if the helper cannot fail afterwards. But this helper still has post-reallocation error exits. collect_md tunnels reject non-NONE encap after the replacement, and ip6_tnl_encap() can also fail later. In those cases the helper returns an error to its callers while the caller still only has the original skb pointer. Both ip6_tnl_start_xmit() and the IPv6 GRE paths free the caller skb on error, so they can end up freeing an skb that ip6_tnl_xmit() already consumed. Use skb_cow_head() instead. It provides the required headroom and writability without privately replacing the caller-owned skb, so later error returns cannot leave callers with a stale pointer. The Ethernet users, ip6gretap and ip6erspan, clear IFF_TX_SKB_SHARING and already call skb_cow_head() before entering ip6_tnl_xmit(). They do not rely on the removed skb_shared() reallocation. This also makes the IPv6 tunnel path consistent with ip_tunnel_xmit().
Title ip6_tunnel: use skb_cow_head() in ip6_tnl_xmit()
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-09-13T06:31:03.944Z

Reserved: 2026-09-11T19:38:34.725Z

Link: CVE-2026-89563

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-11T20:19:40.193

Modified: 2026-09-13T07:17:22.580

Link: CVE-2026-89563

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-09-11T19:44:34Z

Links: CVE-2026-89563 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-13T05:00:12Z

Weaknesses
  • CWE-1341

    Multiple Releases of Same Resource or Handle