CVE-2026-63829

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.

Affected Software

VendorProductVersion RangeStatus
LinuxLinuxb57708add31494175be741ed3fd24023b50c3423 < 9831bc9ecb402957810c2045c663fbfe9b09e296affected
LinuxLinuxb57708add31494175be741ed3fd24023b50c3423 < 1697957eb0971d420dde42862b88eb43506a1105affected
LinuxLinuxb57708add31494175be741ed3fd24023b50c3423 < 47b5d3d506609b08b2e1f7c14f0b681a1953d572affected
LinuxLinuxb57708add31494175be741ed3fd24023b50c3423 < 8165f7ff57d9667d2bb477ef6af83ede7fed4ad7affected
LinuxLinux3.16affected
LinuxLinux0 < 3.16unaffected
LinuxLinux6.12.95 <= 6.12.*unaffected
LinuxLinux6.18.38 <= 6.18.*unaffected
LinuxLinux7.1.3 <= 7.1.*unaffected
LinuxLinux7.2-rc1 <= *unaffected

Weaknesses

References