CVE-2026-63921CWE-862broken-access-control

CVE-2026-63921

High · published July 19, 2026

CVSS v3.1
8.8
EPSS
0%
Percentile
4.5
In the wild
Unconfirmed
What it is

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

ip6: vti: Use ip6_tnl.net in vti6_siocdevprivate().

After patch 1/2 in this series, vti6_update() unlinks and relinks

the tunnel through t->net. vti6_siocdevprivate() still uses

dev_net(dev) for the collision lookup. For a tunnel moved through

IFLA_NET_NS_FD, dev_net(dev) is the new netns, not t->net.

SIOCCHGTUNNEL on a migrated tunnel then runs:

net = dev_net(dev) /* migrated netns */

t = vti6_locate(net, &p1, false) /* misses target in t->net */

...

t = netdev_priv(dev)

vti6_update(t, &p1, false) /* mutates t->net's hash */

A caller in the migrated netns picks params that match a tunnel

in the creation netns. The lookup in dev_net(dev) finds nothing.

vti6_update() prepends the migrated tunnel at the head of the

creation netns hash bucket for those params. Later lookups in

the creation netns resolve to the migrated device. xfrm receive

delivers the matched packets through a device the caller controls.

Reachable from an unprivileged user namespace (unshare --user

--map-root-user --net). Cross tenant scope on container hosts.

Switch the SIOCCHGTUNNEL path on a non fallback device to use

t->net for the lookup. The lookup now matches the netns

vti6_update() operates on.

Also add ns_capable(self->net->user_ns, CAP_NET_ADMIN) before

the lookup. The check at the top of the case is against

dev_net(dev)->user_ns, which after migration is the attacker's

netns. A caller there can pick params absent from self->net,

the lookup returns NULL, t becomes self, and vti6_update()

inserts the device into the creation netns hash. The new check

requires CAP_NET_ADMIN in the creation netns user_ns too.

SIOCADDTUNNEL and SIOCCHGTUNNEL on the fallback device keep

dev_net(dev), which equals init_net there.

The record
Technical detail
CVSS v3.1
8.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00157 · 4.5th percentile
Weakness
CWE-862 · Missing Authorization
Published
2026-07-19T20:17Z
References (8)
EPSS history
Timeline
  • 19 JUL 14:55Z
    ip6: vti: Use ip6_tnl.net in vti6_siocdevprivate().
    cvelistv5