PT-2026-90279 · Linux · Linux

CVE-2026-89563

·

Published

2026-09-11

·

Updated

2026-09-12

None

No severity ratings or metrics are available. When they are, we'll update the corresponding info on the page.
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().
Found an issue in the description? Have something to add? Feel free to write us 👾

Related Identifiers

CVE-2026-89563

Affected Products

Linux