<?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>Tue, 29 Sep 2026 10:29:45 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-64326 — block: skip sync_blockdev() on surprise removal in bdev_mark_dead()</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-64326</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;block: skip sync_blockdev() on surprise removal in bdev_mark_dead()&lt;/p&gt;
&lt;p&gt;bdev_mark_dead()&amp;#39;s @surprise == true means the device is already gone.
The filesystem callback fs_bdev_mark_dead() honours this and skips
sync_filesystem(), but the bare block device path (no -&amp;gt;mark_dead op)
lost its !surprise guard when the holder -&amp;gt;mark_dead callback was wired
up (see Fixes), and now calls sync_blockdev() unconditionally, which can
hang forever waiting on writeback that can no longer complete.&lt;/p&gt;
&lt;p&gt;syzkaller hit this via nvme_reset_work()&amp;#39;s &amp;#34;I/O queues lost&amp;#34; path:
nvme_mark_namespaces_dead() -&amp;gt; blk_mark_disk_dead() -&amp;gt;
bdev_mark_dead(bdev, true) -&amp;gt; sync_blockdev() blocks in
folio_wait_writeback(), wedging the reset worker and every task waiting
on it.&lt;/p&gt;
&lt;p&gt;Skip the sync on surprise removal, matching fs_bdev_mark_dead();
invalidate_bdev() still runs. Orderly removal (surprise == false) is
unchanged.&lt;/p&gt;
&lt;p&gt;Found by FuzzNvme(Syzkaller with FEMU fuzzing framework).&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;block: skip sync_blockdev() on surprise removal in bdev_mark_dead()&lt;/p&gt;
&lt;p&gt;bdev_mark_dead()&amp;#39;s @surprise == true means the device is already gone.
The filesystem callback fs_bdev_mark_dead() honours this and skips
sync_filesystem(), but the bare block device path (no -&amp;gt;mark_dead op)
lost its !surprise guard when the holder -&amp;gt;mark_dead callback was wired
up (see Fixes), and now calls sync_blockdev() unconditionally, which can
hang forever waiting on writeback that can no longer complete.&lt;/p&gt;
&lt;p&gt;syzkaller hit this via nvme_reset_work()&amp;#39;s &amp;#34;I/O queues lost&amp;#34; path:
nvme_mark_namespaces_dead() -&amp;gt; blk_mark_disk_dead() -&amp;gt;
bdev_mark_dead(bdev, true) -&amp;gt; sync_blockdev() blocks in
folio_wait_writeback(), wedging the reset worker and every task waiting
on it.&lt;/p&gt;
&lt;p&gt;Skip the sync on surprise removal, matching fs_bdev_mark_dead();
invalidate_bdev() still runs. Orderly removal (surprise == false) is
unchanged.&lt;/p&gt;
&lt;p&gt;Found by FuzzNvme(Syzkaller with FEMU fuzzing framework).&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-64326</guid>
    </item>
  </channel>
</rss>
