<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://vulnerability.circl.lu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-09-29T16:45:40.902830+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@circl.lu</email>
  </author>
  <link href="https://vulnerability.circl.lu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/cve-2026-90206</id>
    <title>CVE-2026-90206 — nvmet: fix max_qid race between configfs and controller allocation</title>
    <updated>2026-09-29T16:45:40.922763+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Linux</p>
<p>In the Linux kernel, the following vulnerability has been resolved:</p>
<p>nvmet: fix max_qid race between configfs and controller allocation</p>
<p>The function nvmet_subsys_attr_qid_max_store() can race against
nvmet_alloc_ctrl() when a subsystem's max_qid limit is modified.</p>
<p>Suppose max_qid is currently 64. If nvmet_alloc_ctrl() executes:
ctrl-&gt;sqs = kzalloc_objs(struct nvmet_sq *, subsys-&gt;max_qid + 1);
and at this exact point, a userspace process changes max_qid to 128,
nvmet_subsys_attr_qid_max_store() will set the new max_qid value. It
attempts to delete active controllers to force a reconnect, but the
new controller won't be deleted because it hasn't been added to the
subsys-&gt;ctrls list yet.</p>
<p>nvmet_alloc_ctrl() then proceeds and adds the new controller to the
subsys-&gt;ctrls list. Later, when nvmet_install_queue() is called, it
will see max_qid set to 128, but the memory allocated for sqs is only
sized for 64 entries. This results in a KASAN out-of-bounds warning
and potential memory corruptions.</p>
<p>Fix this by protecting the queue allocations and list insertion in
nvmet_alloc_ctrl() with down_read(&amp;nvmet_config_sem). Because
nvmet_subsys_attr_qid_max_store() acquires down_write(&amp;nvmet_config_sem)
to modify the attribute, this safely prevents the configfs writer from
modifying max_qid during controller creation.</p>
<p>Copy the max_qid from the subsystem to the controller's structure
during the allocation; ctrl-&gt;max_qid never changes as long as the
controller remains in LIVE state, so this…</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/cve-2026-90206"/>
  </entry>
</feed>
