CVE-2026-98983
CVE.org · Published
- Record status
- Published
- Identifier year (not publication year)
- 2026
- Source publication
- Source updated
- Imported by cveboard
- Source snapshot
- cve_2026-10-24_midnight_baseline ·
CNA source text (English)
unshare: don't drop active namespace references that were never taken
In the Linux kernel, the following vulnerability has been resolved: unshare: don't drop active namespace references that were never taken Active references on the namespaces of an nsproxy are taken when the nsproxy is installed into a task in switch_task_namespaces() and copy_namespaces() and dropped again by put_nsproxy() through deactivate_nsproxy(). But ksys_unshare() calls put_nsproxy() on an nsproxy that was never installed when set_cred_ucounts() fails. The new namespaces of that nsproxy go from zero to minus one and the namespaces shared with the caller lose a reference that belongs to the nsproxy the caller keeps using: WARNING: kernel/nscommon.c:171 at __ns_ref_active_put+0x1cd/0x230 nsproxy_ns_active_put deactivate_nsproxy ksys_unshare Afterwards the namespaces the caller lives in aren't listed by listns() anymore. set_cred_ucounts() only fails when alloc_ucounts() can't allocate and it only allocates when the real uid of the caller differs from its effective uid. Commit cefd55bd2159 ("nsproxy: fix free_nsproxy() and simplify create_new_namespaces()") separated the two cases on purpose. nsproxy_free() frees an nsproxy that was prepared but never installed and that's what a failed setns() uses in put_nsset(). Export it and use it for a failed unshare() as well.
Scoped product and version facts
Fix information unknown; no fixed version is derived here. Missing information does not prove that no fix exists.
Exploitation unknown; this catalogue does not assess exploitation.
Linux
- Vendor
- Linux
- Product
- Linux
- Platforms
- Unknown
- Default status
unaffected
| Version (version) | Status (status) | Version scheme (versionType) | Exclusive end (lessThan) | Inclusive end (lessThanOrEqual) | Status changes (at → status) |
|---|---|---|---|---|---|
| a98621a0f187a934c115dcfe79a49520ae892111 | affected | git | 56fe03a0c05dba4c5f6a23c391f96de1614a098c | Unavailable | None listed |
| a98621a0f187a934c115dcfe79a49520ae892111 | affected | git | 0b6f31a3c0b16066f812e94b52a704174a6f23cd | Unavailable | None listed |
| 27ae6b17c9ba7ff353ab0906297f08aa845782b4 | affected | git | Unavailable | Unavailable | None listed |
| 297261b343371c4f0b31055d53d285138ec21565 | affected | git | Unavailable | Unavailable | None listed |
| 813a47b0309097da71781ee4ac11922e39b67d55 | affected | git | Unavailable | Unavailable | None listed |
| 6e608e3e5ce12ce7fd21e46212eccca37f917d0e | affected | git | Unavailable | Unavailable | None listed |
| a261fccdb4ac58ec5ba6aa1d92a6cc418fff301f | affected | git | Unavailable | Unavailable | None listed |
| 665dc1ed16357988d439fc5bbc860ee36f540d81 | affected | git | Unavailable | Unavailable | None listed |
| 5.15.209 | affected | semver | 5.16 | Unavailable | None listed |
| 6.1.175 | affected | semver | 6.2 | Unavailable | None listed |
| 6.6.141 | affected | semver | 6.7 | Unavailable | None listed |
| 6.12.91 | affected | semver | 6.13 | Unavailable | None listed |
| 6.18.33 | affected | semver | 6.19 | Unavailable | None listed |
| 7.0.10 | affected | semver | 7.1 | Unavailable | None listed |
Linux
- Vendor
- Linux
- Product
- Linux
- Platforms
- Unknown
- Default status
affected
| Version (version) | Status (status) | Version scheme (versionType) | Exclusive end (lessThan) | Inclusive end (lessThanOrEqual) | Status changes (at → status) |
|---|---|---|---|---|---|
| 7.1 | affected | Unavailable | Unavailable | Unavailable | None listed |
| 0 | unaffected | semver | 7.1 | Unavailable | None listed |
| 7.2.11 | unaffected | semver | Unavailable | 7.2.* | None listed |
| 7.3 | unaffected | original_commit_for_fix | Unavailable | * | None listed |