9.8

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
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:

- recv_done() running in softirq completion context sets
  rdma->state = P9_RDMA_FLUSHING without acquiring req_lock

- p9_cm_event_handler() modifies rdma->state at multiple points
  (ADDR_RESOLVED, ROUTE_RESOLVED, ESTABLISHED, CLOSED) without
  req_lock

- rdma_request() uses spin_lock_irqsave(&rdma->req_lock, 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
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.

Tested with a kernel module that races two threads (simulating
rdma_request and recv_done/CM handler) on rdma->state with proper
locking: 5.5M+ FLUSHING writes over 27M iterations with 0 lost
transitions.
Daten sind bereitgestellt durch das CVE Programm von einer CVE Numbering Authority (CNA) (Unstrukturiert).
HerstellerLinux
Produkt Linux
Default Statusunaffected
Version 473c7dd1d7b59ff8f88a5154737e3eac78a96e5b
Version < 4cee2b8766045059d5e0b8114837b4a8efe827ac
Status affected
Version 473c7dd1d7b59ff8f88a5154737e3eac78a96e5b
Version < 5424138848eb7d7d8a7196676e90a2cbf2142454
Status affected
Version 473c7dd1d7b59ff8f88a5154737e3eac78a96e5b
Version < 3970a19a80de530b801b6256354d4a529a9a2d6c
Status affected
Version 473c7dd1d7b59ff8f88a5154737e3eac78a96e5b
Version < 8aadc136d8e8d8fc95d7982d213cfe2234dfcf2b
Status affected
Version 473c7dd1d7b59ff8f88a5154737e3eac78a96e5b
Version < 151f8cf5b23d8a534d884432a82a6d54d5a61989
Status affected
Version 473c7dd1d7b59ff8f88a5154737e3eac78a96e5b
Version < 13bf9879b778b2f4b260b45bed18f31806120d1e
Status affected
Version 473c7dd1d7b59ff8f88a5154737e3eac78a96e5b
Version < ebbcbe5c0db215feecc17def06178da443f4eea6
Status affected
Version 473c7dd1d7b59ff8f88a5154737e3eac78a96e5b
Version < 7d54894a1ee265a72d70f7cae1da6cc774cccc71
Status affected
Version 3479b3c35e82ed10aa0ca2ee9e78c4eded06ba62
Status affected
Version c01ddaa54d7411e964ffd250c018d8469c5852f2
Status affected
Version 9e69c673fe077b8dc491cd8406c9bdcb1f76dee2
Status affected
Version e48e7e27e4dfd00c81e0381e7cee610cce021452
Status affected
Version 4.4.185
Version < 4.5
Status affected
Version 4.9.185
Version < 4.10
Status affected
Version 4.14.132
Version < 4.15
Status affected
Version 4.19.57
Version < 4.20
Status affected
HerstellerLinux
Produkt Linux
Default Statusaffected
Version 4.20
Status affected
Version 0
Version < 4.20
Status unaffected
Version <= 5.10.*
Version 5.10.261
Status unaffected
Version <= 5.15.*
Version 5.15.212
Status unaffected
Version <= 6.1.*
Version 6.1.178
Status unaffected
Version <= 6.6.*
Version 6.6.145
Status unaffected
Version <= 6.12.*
Version 6.12.97
Status unaffected
Version <= 6.18.*
Version 6.18.40
Status unaffected
Version <= 7.1.*
Version 7.1.5
Status unaffected
Version <= *
Version 7.2
Status unaffected
VulnDex Vulnerability Enrichment
Diese Information steht angemeldeten Benutzern zur Verfügung. Login Login
Zu dieser CVE wurde keine Warnung gefunden.
EPSS Metriken
Typ Quelle Score Percentile
EPSS FIRST.org 0.73% 0.514
CVSS Metriken
Quelle Base Score Exploit Score Impact Score Vector String
416baaa9-dc9f-4396-8d5f-8c081fb06d67 9.8 3.9 5.9
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Es wurden noch keine Informationen zu CWE veröffentlicht.
https://git.kernel.org/stable/c/4cee2b8766045059d5e0b8114837b4a8efe827ac
https://git.kernel.org/stable/c/5424138848eb7d7d8a7196676e90a2cbf2142454
https://git.kernel.org/stable/c/3970a19a80de530b801b6256354d4a529a9a2d6c
https://git.kernel.org/stable/c/8aadc136d8e8d8fc95d7982d213cfe2234dfcf2b
https://git.kernel.org/stable/c/151f8cf5b23d8a534d884432a82a6d54d5a61989
https://git.kernel.org/stable/c/13bf9879b778b2f4b260b45bed18f31806120d1e
https://git.kernel.org/stable/c/ebbcbe5c0db215feecc17def06178da443f4eea6
https://git.kernel.org/stable/c/7d54894a1ee265a72d70f7cae1da6cc774cccc71