Skip to main content
VulnerabilityPublished Updated

CVE-2026-45910: Linux kernel · RDMA/rxe: Fix race condition in QP timer handlers

Affects Linux kernelSource CVE Database V5

0

Not known to be exploited · CVSS 7.8 High · fixed in da379ca16af3722f159860d91a99cb6976a7500f : patch Linux kernel soon.

Data as of 26 Oct 2026, 14:18 UTC

CVSS 3.1 base score
7.8High
How severe the flaw is on the 0–10 CVSS scale.
EPSS
0.1% chance of exploitation in 30 days – higher than 2% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
CISA SSVC
Exploitation
No evidence of active exploitation and no public proof of concept
Automatable
Attackers cannot reliably automate steps 1–4 of the kill chain
Technical impact
Total control over the software or total information disclosure

CISA SSVC assessment, 2026-10-16.

Patch
Available – fixed in da379ca16af3722f159860d91a99cb6976a7500f, 756c93d6df7c3bc599f6590b8e5afead6a41de1c, 87bf646921430e303176edc4eb07c30160361b73 +2
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Exploitation evidence

  1. Disclosed: evidence found.

    CVE published 27 May 2026

  2. Detectable: no evidence on record.

    No public nuclei template indexed

  3. Weaponised: no evidence on record.

    No public exploit code indexed in Metasploit or Exploit-DB

  4. Exploited in the wild: no evidence on record.

    Not in CISA KEV and no source reports exploitation

  5. Observed by OffSeq Mirage: no evidence on record.

    No attack traffic recorded by OffSeq Mirage sensors

A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 26 Oct 2026.

What to do

Upgrade to a fixed release listed under Affected software.

Affected software

ProductAffectedFixed in
LinuxLinuxAffected
  • ≥ d94671632572813e90bcf475bb4c7d51fbf20173, < da379ca16af3722f159860d91a99cb6976a7500f
Fixed in
  • da379ca16af3722f159860d91a99cb6976a7500f
LinuxLinuxAffected
  • ≥ d94671632572813e90bcf475bb4c7d51fbf20173, < 756c93d6df7c3bc599f6590b8e5afead6a41de1c
Fixed in
  • 756c93d6df7c3bc599f6590b8e5afead6a41de1c
LinuxLinuxAffected
  • ≥ d94671632572813e90bcf475bb4c7d51fbf20173, < 87bf646921430e303176edc4eb07c30160361b73
Fixed in
  • 87bf646921430e303176edc4eb07c30160361b73
LinuxLinuxAffected
  • ≥ d94671632572813e90bcf475bb4c7d51fbf20173, < 5ae9da022ee3c97e6469eabcddce9271501ddbad
Fixed in
  • 5ae9da022ee3c97e6469eabcddce9271501ddbad
LinuxLinuxAffected
  • ≥ d94671632572813e90bcf475bb4c7d51fbf20173, < 3c2ae79fb19dfd67341c14f1e78a5f1744eacfe2
Fixed in
  • 3c2ae79fb19dfd67341c14f1e78a5f1744eacfe2
LinuxLinuxAffected
  • =6.4
Fixed in–

Description

In the Linux kernel, the following vulnerability has been resolved: RDMA/rxe: Fix race condition in QP timer handlers I encontered the following warning: WARNING: drivers/infiniband/sw/rxe/rxe_task.c:249 at rxe_sched_task+0x1c8/0x238 [rdma_rxe], CPU#0: swapper/0/0 ... libsha1 [last unloaded: ip6_udp_tunnel] CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Tainted: G C 6.19.0-rc5-64k-v8+ #37 PREEMPT Tainted: [C]=CRAP Hardware name: Raspberry Pi 4 Model B Rev 1.2 Call trace: rxe_sched_task+0x1c8/0x238 [rdma_rxe] (P) retransmit_timer+0x130/0x188 [rdma_rxe] call_timer_fn+0x68/0x4d0 __run_timers+0x630/0x888 ... WARNING: drivers/infiniband/sw/rxe/rxe_task.c:38 at rxe_sched_task+0x1c0/0x238 [rdma_rxe], CPU#0: swapper/0/0 ... WARNING: drivers/infiniband/sw/rxe/rxe_task.c:111 at do_work+0x488/0x5c8 [rdma_rxe], CPU#3: kworker/u17:4/93400 ... refcount_t: underflow; use-after-free. WARNING: lib/refcount.c:28 at refcount_warn_saturate+0x138/0x1a0, CPU#3: kworker/u17:4/93400 The issue is caused by a race condition between retransmit_timer() and rxe_destroy_qp, leading to the Queue Pair's (QP) reference count dropping to zero during timer handler execution. It seems this warning is harmless because rxe_qp_do_cleanup() will flush all pending timers and requests. Example of flow causing the issue: CPU0 CPU1 retransmit_timer() { spin_lock_irqsave rxe_destroy_qp() __rxe_cleanup() __rxe_put() // qp->ref_count decrease to 0 rxe_qp_do_cleanup() { if (qp->valid) { rxe_sched_task() { WARN_ON(rxe_read(task->qp) <= 0); } } spin_unlock_irqrestore } spin_lock_irqsave qp->valid = 0 spin_unlock_irqrestore } Ensure the QP's reference count is maintained and its validity is checked within the timer callbacks by adding calls to rxe_get(qp) and corresponding rxe_put(qp) after use.

References

Community reviews

Loading reviews…