<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://db.gcve.eu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Sat, 24 Oct 2026 13:24:00 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-98983 — unshare: don't drop active namespace references that were never taken</title>
      <link>https://db.gcve.eu/vuln/cve-2026-98983</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;unshare: don&amp;#39;t drop active namespace references that were never taken&lt;/p&gt;
&lt;p&gt;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().&lt;/p&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;p&gt;WARNING: kernel/nscommon.c:171 at __ns_ref_active_put+0x1cd/0x230
   nsproxy_ns_active_put
   deactivate_nsproxy
   ksys_unshare&lt;/p&gt;
&lt;p&gt;Afterwards the namespaces the caller lives in aren&amp;#39;t listed by listns()
anymore. set_cred_ucounts() only fails when alloc_ucounts() can&amp;#39;t
allocate and it only allocates when the real uid of the caller differs
from its effective uid.&lt;/p&gt;
&lt;p&gt;Commit cefd55bd2159 (&amp;#34;nsproxy: fix free_nsproxy() and simplify
create_new_namespaces()&amp;#34;) separated the two cases on purpose.
nsproxy_free() frees an nsproxy that was prepared but never installed
and that&amp;#39;s what a failed setns() uses in put_nsset(). Export it and use
it for a failed unshare() as well.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;unshare: don&amp;#39;t drop active namespace references that were never taken&lt;/p&gt;
&lt;p&gt;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().&lt;/p&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;p&gt;WARNING: kernel/nscommon.c:171 at __ns_ref_active_put+0x1cd/0x230
   nsproxy_ns_active_put
   deactivate_nsproxy
   ksys_unshare&lt;/p&gt;
&lt;p&gt;Afterwards the namespaces the caller lives in aren&amp;#39;t listed by listns()
anymore. set_cred_ucounts() only fails when alloc_ucounts() can&amp;#39;t
allocate and it only allocates when the real uid of the caller differs
from its effective uid.&lt;/p&gt;
&lt;p&gt;Commit cefd55bd2159 (&amp;#34;nsproxy: fix free_nsproxy() and simplify
create_new_namespaces()&amp;#34;) separated the two cases on purpose.
nsproxy_free() frees an nsproxy that was prepared but never installed
and that&amp;#39;s what a failed setns() uses in put_nsset(). Export it and use
it for a failed unshare() as well.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/cve-2026-98983</guid>
    </item>
  </channel>
</rss>
