Skip to main content
← All vulnerabilities
CVE-2026-63829

net: ip_gre: require CAP_NET_ADMIN in the device netns for changelink

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 5.10.261, 5.15.212, 6.1.178, 6.6.145, 6.12.95, and 2 more
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: no
  • Technical impact: total

Summary

In the Linux kernel, the following vulnerability has been resolved: net: ip_gre: require CAP_NET_ADMIN in the device netns for changelink A tunnel changelink() operates on at most two netns, dev_net(dev) and the tunnel link netns t->net. They differ once the device is created in or moved to a netns other than the one the request runs in. The rtnl changelink path checks CAP_NET_ADMIN only against dev_net(dev), so a caller privileged there but not in t->net can rewrite a tunnel that lives in t->net. Add rtnl_dev_link_net_capable() next to rtnl_get_net_ns_capable() in net/core/rtnetlink.c. It requires CAP_NET_ADMIN in the link netns and is skipped when the link netns is dev_net(dev), where the rtnl path already checked it. The other patches in this series use the same helper. Gate ipgre_changelink() and erspan_changelink() with it, at the top of the op before any attribute is parsed, because the parsers update live tunnel fields first. ipgre_netlink_parms() sets t->collect_md before ip_tunnel_changelink() runs. Commit 8b484efd5cb4 ("ip6: vti: Use ip6_tnl.net in vti6_siocdevprivate().") added the same check on the ioctl path. This adds it on RTM_NEWLINK.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: no · Technical impact: total

  3. Record last updated

Affected versions

  • Linux Linux

    From b57708add31494175be741ed3fd24023b50c3423 · fixed in 19275943d8fe903eb7b9aa53e380e41efd042ada; From b57708add31494175be741ed3fd24023b50c3423 · fixed in 866b0f5ae599490bd496fd84581c68ac8b94e6af; From b57708add31494175be741ed3fd24023b50c3423 · fixed in 92b766fc55156e0da2ecd0c2302c971118f8a229; From b57708add31494175be741ed3fd24023b50c3423 · fixed in e54c05ed3d9c28733fb9e5837219aca3691defa3; From b57708add31494175be741ed3fd24023b50c3423 · fixed in 9831bc9ecb402957810c2045c663fbfe9b09e296; From b57708add31494175be741ed3fd24023b50c3423 · fixed in 1697957eb0971d420dde42862b88eb43506a1105; From b57708add31494175be741ed3fd24023b50c3423 · fixed in 47b5d3d506609b08b2e1f7c14f0b681a1953d572; From b57708add31494175be741ed3fd24023b50c3423 · fixed in 8165f7ff57d9667d2bb477ef6af83ede7fed4ad7

  • Linux Linux

    3.16

  • KernelLinux

    From 3.16.0 · fixed in 5.10.261; From 5.11.0 · fixed in 5.15.212; From 5.16.0 · fixed in 6.1.178; From 6.2.0 · fixed in 6.6.145; From 6.7.0 · fixed in 6.12.95; From 6.13.0 · fixed in 6.18.38; From 6.19.0 · fixed in 7.1.3

References 8

git.kernel.org