Linux: Missing Authorization
CVE-2026-63921 is a high-severity missing authorization vulnerability in Linux, with a CVSS 3.1 base score of 8.8 out of 10. It can be exploited with local access to the system by an attacker with a low-privileged account, without any action from a user. The record lists versions 94ff740a7f9ef5c010784a325dca00cbf228f941, df42ac708acc3399bbb6dc5ca16e0540adda7bbf, 44d2ff7d2178503b93151140a45dfa2ad49c9906 as the first without the flaw, so updating Linux to one of those releases or later removes the exposure. There is no confirmed exploitation so far. EPSS estimates a 0.16% chance of exploitation within 30 days, which is low compared with other CVEs.
High severity with no evidence of exploitation so far.
What to do
- Update Linux to 94ff740a7f9ef5c010784a325dca00cbf228f941 or df42ac708acc3399bbb6dc5ca16e0540adda7bbf or 44d2ff7d2178503b93151140a45dfa2ad49c9906 or 1acfb7d9c6fc7e209ed7789392697e97e03edd33, whichever matches your release line, or a later version.
- Update Linux Kernel to 5.10.259 or 5.15.210 or 6.1.176 or 6.6.143, whichever matches your release line, or a later version.
Affected products and versions
| Vendor | Product | Affected versions | Fixed in |
|---|---|---|---|
| Linux | Linux | 61220ab349485d911083d0b7990ccd3db6c63297 up to, but not including, 94ff740a7f9ef5c010784a325dca00cbf228f941; 61220ab349485d911083d0b7990ccd3db6c63297 up to, but not including, df42ac708acc3399bbb6dc5ca16e0540adda7bbf; 61220ab349485d911083d0b7990ccd3db6c63297 up to, but not including, 44d2ff7d2178503b93151140a45dfa2ad49c9906; 61220ab349485d911083d0b7990ccd3db6c63297 up to, but not including, 1acfb7d9c6fc7e209ed7789392697e97e03edd33; 61220ab349485d911083d0b7990ccd3db6c63297 up to, but not including, d2236348414bdd6558385f35aa7fdc9bf5634011; 61220ab349485d911083d0b7990ccd3db6c63297 up to, but not including, 853f6ea482dfcd3404bbef458ab4d68364eed838; 61220ab349485d911083d0b7990ccd3db6c63297 up to, but not including, 596f6354c96a891e58c04a09cbfb7b0d1ec00dab; 61220ab349485d911083d0b7990ccd3db6c63297 up to, but not including, 8b484efd5cb4eeef9021a661e198edc5349dacf6; and 1 more ranges | 94ff740a7f9ef5c010784a325dca00cbf228f941, df42ac708acc3399bbb6dc5ca16e0540adda7bbf, 44d2ff7d2178503b93151140a45dfa2ad49c9906, 1acfb7d9c6fc7e209ed7789392697e97e03edd33, d2236348414bdd6558385f35aa7fdc9bf5634011, 853f6ea482dfcd3404bbef458ab4d68364eed838 |
| Linux | Linux Kernel | 3.15 up to, but not including, 5.10.259; 5.11 up to, but not including, 5.15.210; 5.16 up to, but not including, 6.1.176; 6.2 up to, but not including, 6.6.143; 6.7 up to, but not including, 6.12.93; 6.13 up to, but not including, 6.18.35; 6.19 up to, but not including, 7.0.12; 7.1 | 5.10.259, 5.15.210, 6.1.176, 6.6.143, 6.12.93, 6.18.35 |
Version data comes from the organisation that assigned the CVE. Confirm against the vendor advisory before deciding you are unaffected.
How the severity score breaks down
- Attack vector
- LocalThe attacker needs local access or must trick a user into running something.
- Attack complexity
- LowNo special conditions are needed; the attack works reliably.
- Privileges required
- LowA basic user account is enough.
- User interaction
- NoneNo action by a victim is required.
- Scope
- ChangedThe attack can reach beyond the vulnerable component into other systems.
- Confidentiality
- HighAll data handled by the component can be read.
- Integrity
- HighData or code can be modified at will.
- Availability
- HighThe component can be taken down completely.
Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H. Scored by CNA.
Official description
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.
Source: the CVE record as published by its numbering authority, via NVD and CVE.org.
The underlying weakness: Missing Authorization
The product does not perform an authorization check when an actor attempts to access a resource or perform an action.
How developers prevent this class of flaw
- Divide the product into anonymous, normal, privileged, and administrative areas. Reduce the attack surface by carefully mapping roles with data and functionality. Use role-based access control (RBAC) to enforce the roles at the appropriate boundaries. Note that this approach may not protect against horizontal authorization, i.e., it will not protect a user from attacking others with the same role.
- Ensure that access control checks are performed related to the business logic. These checks may be different than the access control checks that are applied to more generic resources such as files, connections, processes, memory, and database records. For example, a database may restrict access for medical records to a specific database user, but each record might only be intended to be accessible to the patient and the patient's doctor.
- Use a vetted library or framework that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid. For example, consider using authorization frameworks such as the JAAS Authorization Framework and the OWASP ESAPI Access Control feature.
Timeline
- CVE record published.
- CISA published its SSVC assessment (exploitation: none, automatable: no, technical impact: total).
- Record last changed materially (score, affected products, status or references).
References
Patches and release notes
- git.kernel.org/stable/c/1acfb7d9c6fc7e209ed7789392697e97e03edd33
- git.kernel.org/stable/c/44d2ff7d2178503b93151140a45dfa2ad49c9906
- git.kernel.org/stable/c/596f6354c96a891e58c04a09cbfb7b0d1ec00dab
- git.kernel.org/stable/c/853f6ea482dfcd3404bbef458ab4d68364eed838
- git.kernel.org/stable/c/8b484efd5cb4eeef9021a661e198edc5349dacf6
- git.kernel.org/stable/c/94ff740a7f9ef5c010784a325dca00cbf228f941
- git.kernel.org/stable/c/d2236348414bdd6558385f35aa7fdc9bf5634011
- git.kernel.org/stable/c/df42ac708acc3399bbb6dc5ca16e0540adda7bbf
Recent Missing Authorization vulnerabilities
- 8.8 High severity
- 8.8 High severity
- 7.1 High severity
- 8.8 High severity
- 7.1 High severity
- 8.1 High severity
Spotted an error? Tell us.