PT-2026-121960

CVE-2026-98983

·

Published

2026-10-23

·

Updated

2026-10-23

Description by

Score
N/A
Not available

No severity ratings or metrics are available. When they are, we'll update the corresponding info on the page.

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.
Vendors
Affected products
Related identifiers
Found an issue in the description? Have something to add? Feel free to write us 👾