Get a Demo

Let's Patch It!

Book a short call with one our specialists, we'll walk you through how Endor Patches work, and ask you a few questions about your environment (like your primary programming languages and repository management). We'll also send you an email right after you fill out the form, feel free to reply with any questions you have in advance!

CVE

CVE-2026-72491

net/9p: fix race condition on rdma->state in trans_rdma.c
Back to all
CVE

CVE-2026-72491

net/9p: fix race condition on rdma->state in trans_rdma.c

In the Linux kernel, the following vulnerability has been resolved:

net/9p: fix race condition on rdma->state in trans_rdma.c

The rdma->state field is modified without holding req_lock in both

recvdone() and p9cmeventhandler(), while rdma_request() accesses

the same field under the req_lock spinlock. This inconsistent locking

creates a race condition:

  • recv_done() running in softirq completion context sets

  rdma->state = P9RDMAFLUSHING without acquiring req_lock

  • p9cmevent_handler() modifies rdma->state at multiple points

  (ADDRRESOLVED, ROUTERESOLVED, ESTABLISHED, CLOSED) without

  req_lock

  • rdmarequest() uses spinlockirqsave(&rdma->reqlock, flags) to

  protect the read-modify-write of rdma->state

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.

Fix by adding req_lock protection to all rdma->state modifications in

recvdone() and p9cmeventhandler(), matching the pattern already

used in rdmarequest(). Use spinlockirqsave/spinunlock_irqrestore

in the CM event handler since it can race with recv_done() which runs

in softirq context.

Tested with a kernel module that races two threads (simulating

rdmarequest and recvdone/CM handler) on rdma->state with proper

locking: 5.5M+ FLUSHING writes over 27M iterations with 0 lost

transitions.

Package Versions Affected

Package Version
patch Availability
No items found.

Automatically patch vulnerabilities without upgrading

Fix Without Upgrading
Detect compatible fix
Apply safe remediation
Fix with a single pull request

CVSS Version

Severity
Base Score
CVSS Version
Score Vector
C
H
U
9.8
-
3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
C
H
U
0
-
3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
C
H
U
-

Related Resources

No items found.

References

https://git.kernel.org/stable/c/13bf9879b778b2f4b260b45bed18f31806120d1e, https://git.kernel.org/stable/c/151f8cf5b23d8a534d884432a82a6d54d5a61989, https://git.kernel.org/stable/c/3970a19a80de530b801b6256354d4a529a9a2d6c, https://git.kernel.org/stable/c/4cee2b8766045059d5e0b8114837b4a8efe827ac, https://git.kernel.org/stable/c/5424138848eb7d7d8a7196676e90a2cbf2142454, https://git.kernel.org/stable/c/7d54894a1ee265a72d70f7cae1da6cc774cccc71, https://git.kernel.org/stable/c/8aadc136d8e8d8fc95d7982d213cfe2234dfcf2b, https://git.kernel.org/stable/c/ebbcbe5c0db215feecc17def06178da443f4eea6, https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/72xxx/CVE-2026-72491.json, https://nvd.nist.gov/vuln/detail/CVE-2026-72491, https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Severity

9.8

CVSS Score
0
10

Basic Information

Base CVSS
9.8
EPSS Probability
0.00724%
EPSS Percentile
0.51396%
Introduced Version
473c7dd1d7b59ff8f88a5154737e3eac78a96e5b,0,4.4.185,4.9.185,4.14.132,4.19.57,4.20.0,5.11.0,5.16.0,6.2.0,6.7.0,6.13.0,6.19.0
Fix Available
7d54894a1ee265a72d70f7cae1da6cc774cccc71,4.5,4.10,4.15,4.20,5.10.261,5.15.212,6.1.178,6.6.145,6.12.97,6.18.40,7.1.5,6.1.180-1,5.10.262-1,6.12.100-1

Fix Critical Vulnerabilities Instantly

Secure your app without upgrading.
Fix Without Upgrading