<?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>Thu, 12 Nov 2026 08:09:43 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-98539 — fs/ntfs3: use d_instantiate_new() in ntfs_create_inode() and murder syzbot's "WARNING in do_new_mount" saga</title>
      <link>https://db.gcve.eu/vuln/cve-2026-98539</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;fs/ntfs3: use d_instantiate_new() in ntfs_create_inode() and murder syzbot&amp;#39;s &amp;#34;WARNING in do_new_mount&amp;#34; saga&lt;/p&gt;
&lt;p&gt;ntfs_create_inode() creates a new inode via ntfs_new_inode(). It hashes
it with insert_inode_locked() and so it&amp;#39;s marked as I_NEW until
unlock_new_inode().&lt;/p&gt;
&lt;p&gt;ntfs 3 calls d_instantiate() in between though... Since the dentry was
already hashed by the lookup before the create any path walk finds it
without touching the parent&amp;#39;s i_rwsem and so can lock the inode.&lt;/p&gt;
&lt;p&gt;If the inode is a directory unlock_new_inode() calls
lockdep_annotate_inode_mutex_key() and marks i_rwsem with the
i_mutex_dir_key class.&lt;/p&gt;
&lt;p&gt;That resets the count and the owner of a lock somebody else may already
hold by now...&lt;/p&gt;
&lt;p&gt;syzbot has been spamming us with the same godforsaken bug&lt;/p&gt;
&lt;p&gt;&amp;#34;WARNING in do_new_mount&amp;#34;&lt;/p&gt;
&lt;p&gt;since 2023. I can&amp;#39;t take it anymore so I went looking. Afaict, syzbot&amp;#39;s
executor chdirs into a freshly mounted ntfs3 image, creates a
directory and then mounts some pseudofs on it. Everytime the mkdir()
takes longer than syzbot waits mount() runs concurrently:&lt;/p&gt;
&lt;p&gt;mkdir(&amp;#34;./sys&amp;#34;)                        mount(NULL, &amp;#34;./sys&amp;#34;, &amp;#34;sysfs&amp;#34;)
  ntfs_create_inode()
    d_instantiate()
                                        user_path_at() finds the dentry
                                        do_lock_mount()
                                          inode_lock(inode)
                                          namespace_lock()
    unlock_new_inode(…&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;fs/ntfs3: use d_instantiate_new() in ntfs_create_inode() and murder syzbot&amp;#39;s &amp;#34;WARNING in do_new_mount&amp;#34; saga&lt;/p&gt;
&lt;p&gt;ntfs_create_inode() creates a new inode via ntfs_new_inode(). It hashes
it with insert_inode_locked() and so it&amp;#39;s marked as I_NEW until
unlock_new_inode().&lt;/p&gt;
&lt;p&gt;ntfs 3 calls d_instantiate() in between though... Since the dentry was
already hashed by the lookup before the create any path walk finds it
without touching the parent&amp;#39;s i_rwsem and so can lock the inode.&lt;/p&gt;
&lt;p&gt;If the inode is a directory unlock_new_inode() calls
lockdep_annotate_inode_mutex_key() and marks i_rwsem with the
i_mutex_dir_key class.&lt;/p&gt;
&lt;p&gt;That resets the count and the owner of a lock somebody else may already
hold by now...&lt;/p&gt;
&lt;p&gt;syzbot has been spamming us with the same godforsaken bug&lt;/p&gt;
&lt;p&gt;&amp;#34;WARNING in do_new_mount&amp;#34;&lt;/p&gt;
&lt;p&gt;since 2023. I can&amp;#39;t take it anymore so I went looking. Afaict, syzbot&amp;#39;s
executor chdirs into a freshly mounted ntfs3 image, creates a
directory and then mounts some pseudofs on it. Everytime the mkdir()
takes longer than syzbot waits mount() runs concurrently:&lt;/p&gt;
&lt;p&gt;mkdir(&amp;#34;./sys&amp;#34;)                        mount(NULL, &amp;#34;./sys&amp;#34;, &amp;#34;sysfs&amp;#34;)
  ntfs_create_inode()
    d_instantiate()
                                        user_path_at() finds the dentry
                                        do_lock_mount()
                                          inode_lock(inode)
                                          namespace_lock()
    unlock_new_inode(…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/cve-2026-98539</guid>
    </item>
  </channel>
</rss>
