Bug 2502230 (CVE-2026-63829) - CVE-2026-63829 kernel: net: ip_gre: require CAP_NET_ADMIN in the device netns for changelink
Summary: CVE-2026-63829 kernel: net: ip_gre: require CAP_NET_ADMIN in the device netns...
Keywords:
Status: NEW
Alias: CVE-2026-63829
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
high
high
Target Milestone: ---
Assignee: Product Security DevOps Team
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2026-07-19 13:03 UTC by OSIDB Bzimport
Modified: 2026-10-08 09:50 UTC (History)
2 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2026:75746 0 None None None 2026-10-05 10:48:44 UTC
Red Hat Product Errata RHSA-2026:75747 0 None None None 2026-10-05 11:23:49 UTC
Red Hat Product Errata RHSA-2026:76738 0 None None None 2026-10-07 20:29:23 UTC
Red Hat Product Errata RHSA-2026:76739 0 None None None 2026-10-08 09:50:07 UTC

Description OSIDB Bzimport 2026-07-19 13:03:01 UTC
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.

Comment 5 Jon Orris 2026-10-05 10:48:43 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 8

Via RHSA-2026:75746 https://access.redhat.com/errata/RHSA-2026:75746

Comment 6 Jon Orris 2026-10-05 11:23:48 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 8

Via RHSA-2026:75747 https://access.redhat.com/errata/RHSA-2026:75747

Comment 7 Jon Orris 2026-10-07 20:29:22 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 10

Via RHSA-2026:76738 https://access.redhat.com/errata/RHSA-2026:76738

Comment 8 Jon Orris 2026-10-08 09:50:07 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 9

Via RHSA-2026:76739 https://access.redhat.com/errata/RHSA-2026:76739


Note You need to log in before you can comment on or make changes to this bug.