<?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>Wed, 30 Sep 2026 19:00:18 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-90184 — null_blk: serialize configfs attribute updates with device setup</title>
      <link>https://db.gcve.eu/vuln/cve-2026-90184</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;null_blk: serialize configfs attribute updates with device setup&lt;/p&gt;
&lt;p&gt;The attribute store methods generated with NULLB_DEVICE_ATTR() refuse to
change the configuration of a live device by testing
NULLB_DEV_FL_CONFIGURED, but that flag is only set by
nullb_device_power_store() after null_add_dev() has returned, and the
store methods take no lock at all. configfs only serializes writes to
the same open file (buffer-&amp;gt;mutex), so a write to any attribute can run
concurrently with null_add_dev() and change the device configuration
while it is being used.&lt;/p&gt;
&lt;p&gt;null_add_dev() reads the configuration several times, e.g. dev-&amp;gt;zoned is
read once to set up the queue limits and once to initialize the zone
resources:&lt;/p&gt;
&lt;p&gt;CPU0: echo 1 &amp;gt; nullb0/power         CPU1: echo 1 &amp;gt; nullb0/zoned
  nullb_device_power_store()
    mutex_lock(&amp;amp;lock)
    null_add_dev()
      if (dev-&amp;gt;zoned) -&amp;gt; false
        /* no BLK_FEAT_ZONED */       nullb_device_zoned_store()
                                        test_bit(FL_CONFIGURED) -&amp;gt; 0
                                        dev-&amp;gt;zoned = true
      blk_mq_alloc_disk()
        /* queue is not zoned */
      if (nullb-&amp;gt;dev-&amp;gt;zoned) -&amp;gt; true
        null_register_zoned_dev()
          blk_revalidate_disk_zones()&lt;/p&gt;
&lt;p&gt;blk_revalidate_disk_zones() is then called for a queue that does not
have BLK_FEAT_ZONED set, which triggers its WARN_ON_ONCE() and fails the
device setup with -EIO:&lt;/p&gt;
&lt;p&gt;WARNING: CPU: 2 PID: 322 at…&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;null_blk: serialize configfs attribute updates with device setup&lt;/p&gt;
&lt;p&gt;The attribute store methods generated with NULLB_DEVICE_ATTR() refuse to
change the configuration of a live device by testing
NULLB_DEV_FL_CONFIGURED, but that flag is only set by
nullb_device_power_store() after null_add_dev() has returned, and the
store methods take no lock at all. configfs only serializes writes to
the same open file (buffer-&amp;gt;mutex), so a write to any attribute can run
concurrently with null_add_dev() and change the device configuration
while it is being used.&lt;/p&gt;
&lt;p&gt;null_add_dev() reads the configuration several times, e.g. dev-&amp;gt;zoned is
read once to set up the queue limits and once to initialize the zone
resources:&lt;/p&gt;
&lt;p&gt;CPU0: echo 1 &amp;gt; nullb0/power         CPU1: echo 1 &amp;gt; nullb0/zoned
  nullb_device_power_store()
    mutex_lock(&amp;amp;lock)
    null_add_dev()
      if (dev-&amp;gt;zoned) -&amp;gt; false
        /* no BLK_FEAT_ZONED */       nullb_device_zoned_store()
                                        test_bit(FL_CONFIGURED) -&amp;gt; 0
                                        dev-&amp;gt;zoned = true
      blk_mq_alloc_disk()
        /* queue is not zoned */
      if (nullb-&amp;gt;dev-&amp;gt;zoned) -&amp;gt; true
        null_register_zoned_dev()
          blk_revalidate_disk_zones()&lt;/p&gt;
&lt;p&gt;blk_revalidate_disk_zones() is then called for a queue that does not
have BLK_FEAT_ZONED set, which triggers its WARN_ON_ONCE() and fails the
device setup with -EIO:&lt;/p&gt;
&lt;p&gt;WARNING: CPU: 2 PID: 322 at…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/cve-2026-90184</guid>
    </item>
  </channel>
</rss>
