<?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 05:35:03 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-72491 — net/9p: fix race condition on rdma-&gt;state in trans_rdma.c</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-72491</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;net/9p: fix race condition on rdma-&amp;gt;state in trans_rdma.c&lt;/p&gt;
&lt;p&gt;The rdma-&amp;gt;state field is modified without holding req_lock in both
recv_done() and p9_cm_event_handler(), while rdma_request() accesses
the same field under the req_lock spinlock. This inconsistent locking
creates a race condition:&lt;/p&gt;
&lt;p&gt;- recv_done() running in softirq completion context sets
  rdma-&amp;gt;state = P9_RDMA_FLUSHING without acquiring req_lock&lt;/p&gt;
&lt;p&gt;- p9_cm_event_handler() modifies rdma-&amp;gt;state at multiple points
  (ADDR_RESOLVED, ROUTE_RESOLVED, ESTABLISHED, CLOSED) without
  req_lock&lt;/p&gt;
&lt;p&gt;- rdma_request() uses spin_lock_irqsave(&amp;amp;rdma-&amp;gt;req_lock, flags) to
  protect the read-modify-write of rdma-&amp;gt;state&lt;/p&gt;
&lt;p&gt;The race can cause lost state transitions: recv_done() or the CM
event handler could set state to FLUSHING/CLOSED while rdma_request()
is concurrently checking or modifying state under the lock, leading to
the FLUSHING transition being silently overwritten by CLOSING. This
corrupts the connection state machine and can cause use-after-free on
RDMA request objects during teardown.&lt;/p&gt;
&lt;p&gt;Fix by adding req_lock protection to all rdma-&amp;gt;state modifications in
recv_done() and p9_cm_event_handler(), matching the pattern already
used in rdma_request(). Use spin_lock_irqsave/spin_unlock_irqrestore
in the CM event handler since it can race with recv_done() which runs
in softirq context.&lt;/p&gt;
&lt;p&gt;Tested with a kernel module that races two threads (simulating
rdma_request and recv_…&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;net/9p: fix race condition on rdma-&amp;gt;state in trans_rdma.c&lt;/p&gt;
&lt;p&gt;The rdma-&amp;gt;state field is modified without holding req_lock in both
recv_done() and p9_cm_event_handler(), while rdma_request() accesses
the same field under the req_lock spinlock. This inconsistent locking
creates a race condition:&lt;/p&gt;
&lt;p&gt;- recv_done() running in softirq completion context sets
  rdma-&amp;gt;state = P9_RDMA_FLUSHING without acquiring req_lock&lt;/p&gt;
&lt;p&gt;- p9_cm_event_handler() modifies rdma-&amp;gt;state at multiple points
  (ADDR_RESOLVED, ROUTE_RESOLVED, ESTABLISHED, CLOSED) without
  req_lock&lt;/p&gt;
&lt;p&gt;- rdma_request() uses spin_lock_irqsave(&amp;amp;rdma-&amp;gt;req_lock, flags) to
  protect the read-modify-write of rdma-&amp;gt;state&lt;/p&gt;
&lt;p&gt;The race can cause lost state transitions: recv_done() or the CM
event handler could set state to FLUSHING/CLOSED while rdma_request()
is concurrently checking or modifying state under the lock, leading to
the FLUSHING transition being silently overwritten by CLOSING. This
corrupts the connection state machine and can cause use-after-free on
RDMA request objects during teardown.&lt;/p&gt;
&lt;p&gt;Fix by adding req_lock protection to all rdma-&amp;gt;state modifications in
recv_done() and p9_cm_event_handler(), matching the pattern already
used in rdma_request(). Use spin_lock_irqsave/spin_unlock_irqrestore
in the CM event handler since it can race with recv_done() which runs
in softirq context.&lt;/p&gt;
&lt;p&gt;Tested with a kernel module that races two threads (simulating
rdma_request and recv_…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-72491</guid>
    </item>
  </channel>
</rss>
