<?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://vulnerability.circl.lu</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>Fri, 02 Oct 2026 15:25:41 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-72170 — 9p: skip nlink update in cacheless mode to fix WARN_ON</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-72170</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;9p: skip nlink update in cacheless mode to fix WARN_ON&lt;/p&gt;
&lt;p&gt;v9fs_dec_count() unconditionally calls drop_nlink() on regular files,
even when the inode&amp;#39;s nlink is already zero. In cacheless mode the
client refetches inode metadata from the server (the source of truth)
on every operation, so by the time v9fs_remove() returns, the locally
cached nlink may already reflect the post-unlink value:&lt;/p&gt;
&lt;p&gt;1. Client initiates unlink, server processes it and sets nlink to 0
  2. Client refetches inode metadata (nlink=0) before unlink returns
  3. Client&amp;#39;s v9fs_remove() completes successfully
  4. Client calls v9fs_dec_count() which calls drop_nlink() on nlink=0&lt;/p&gt;
&lt;p&gt;This race is easily triggered under heavy unlink workloads, such as
stress-ng&amp;#39;s unlink stressor, producing the following warning:&lt;/p&gt;
&lt;p&gt;WARNING: fs/inode.c:417 at drop_nlink+0x4c/0xc8
  Call trace:
   drop_nlink+0x4c/0xc8
   v9fs_remove+0x1e0/0x250 [9p]
   v9fs_vfs_unlink+0x20/0x38 [9p]
   vfs_unlink+0x13c/0x258
   ...&lt;/p&gt;
&lt;p&gt;In cacheless mode the server is authoritative and the inode is on its
way out, so locally adjusting nlink buys nothing. Skip v9fs_dec_count()
entirely when neither CACHE_META nor CACHE_LOOSE is set, which both
avoids the warning and removes a class of nlink races (two concurrent
unlinkers observing nlink &amp;gt; 0 and both calling drop_nlink()) that an
nlink == 0 guard alone would only narrow rather than close.&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;9p: skip nlink update in cacheless mode to fix WARN_ON&lt;/p&gt;
&lt;p&gt;v9fs_dec_count() unconditionally calls drop_nlink() on regular files,
even when the inode&amp;#39;s nlink is already zero. In cacheless mode the
client refetches inode metadata from the server (the source of truth)
on every operation, so by the time v9fs_remove() returns, the locally
cached nlink may already reflect the post-unlink value:&lt;/p&gt;
&lt;p&gt;1. Client initiates unlink, server processes it and sets nlink to 0
  2. Client refetches inode metadata (nlink=0) before unlink returns
  3. Client&amp;#39;s v9fs_remove() completes successfully
  4. Client calls v9fs_dec_count() which calls drop_nlink() on nlink=0&lt;/p&gt;
&lt;p&gt;This race is easily triggered under heavy unlink workloads, such as
stress-ng&amp;#39;s unlink stressor, producing the following warning:&lt;/p&gt;
&lt;p&gt;WARNING: fs/inode.c:417 at drop_nlink+0x4c/0xc8
  Call trace:
   drop_nlink+0x4c/0xc8
   v9fs_remove+0x1e0/0x250 [9p]
   v9fs_vfs_unlink+0x20/0x38 [9p]
   vfs_unlink+0x13c/0x258
   ...&lt;/p&gt;
&lt;p&gt;In cacheless mode the server is authoritative and the inode is on its
way out, so locally adjusting nlink buys nothing. Skip v9fs_dec_count()
entirely when neither CACHE_META nor CACHE_LOOSE is set, which both
avoids the warning and removes a class of nlink races (two concurrent
unlinkers observing nlink &amp;gt; 0 and both calling drop_nlink()) that an
nlink == 0 guard alone would only narrow rather than close.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-72170</guid>
    </item>
  </channel>
</rss>
