VulnTideExploited vulnerabilities, by vendor. Data as of .
Not in CISA KEVPublished CVSS 9.8 criticalEPSS 0.7% probability of exploitation in 30 days
Linux

CVE-2026-72473: xprtrdma: Decouple req recycling from RPC completion

Is it exploited?

Not on CISA's list. CISA has not added it to the Known Exploited Vulnerabilities catalog as of . If CISA adds it, this page shows it as known exploited.

How likely is exploitation in the next 30 days?
0.7%

EPSS score, percentile 53.9 of all scored records. A probability estimated by FIRST, not a report of exploitation.

How severe?
9.8 Critical

CVSS v3.1 base score, given by the CNA

What should I do?

CISA has set no required action, because the vulnerability is not in KEV.

The CVE record links no vendor advisory, patch or mitigation.

Which versions are affected?

Affected

  • 5.3

Unaffected before 5.3; 6.1.178; 6.6.145; 6.12.97; 6.18.40; 7.1.5; and 1 more

Versions by product

Source: CISA KEV 2026.10.29, as of ; FIRST EPSS, as of ; CVE List, as of . About the data.

What to do

Advisories and patches

The CVE record links no vendor advisory, patch or mitigation.

This summary is based on the CVE record as of . Check the vendor's advisory before you act: affected versions and fixes can change.

Affected products and versions

As listed in the CVE record.

Linux Linux
StatusVersions
Affectedfrom 0ab115237025 to before 740975054a19
Affectedfrom 0ab115237025 to before 9f3d9b68c1c6
Affectedfrom 0ab115237025 to before e7632089523a
Affectedfrom 0ab115237025 to before 53442c7d0c88
Affectedfrom 0ab115237025 to before 8203f760a72b
Affectedfrom 0ab115237025 to before e786233d2e0b

Versions not listed are: unaffected.

Linux Linux
StatusVersions
Affected5.3
Unaffectedbefore 5.3
Unaffected6.1.178
Unaffected6.6.145
Unaffected6.12.97
Unaffected6.18.40
Unaffected7.1.5
Unaffected7.2

Versions not listed are: affected.

Versions the record lists as unaffected: 6.1.178, 6.6.145, 6.12.97, 6.18.40, 7.1.5, 7.2.

Source: CVE List, as of . About the data.

About this vulnerability

In the Linux kernel, the following vulnerability has been resolved: xprtrdma: Decouple req recycling from RPC completion rl_kref formerly served two distinct lifetimes through a single refcount: it gated when a Reply could wake its RPC task, and it gated when an rpcrdma_req could return to its free pool. The marshal path took the Send-side reference only when SGEs needed DMA-unmap (sc_unmap_cou…

Summary: CVE record, as of .

  • CISA has not added CVE-2026-72473 to its Known Exploited Vulnerabilities (KEV) catalog, as of 29 Oct 2026.
  • The CVE record was published on 15 Aug 2026.
  • The CVE record carries a CVSS v3.1 base score of 9.8 (Critical), given by its CNA.
  • FIRST's EPSS model puts the probability of exploitation in the next 30 days at 0.7% (percentile 53.9), as of 29 Oct 2026. EPSS is a statistical estimate, not a report of exploitation.
  • CISA's SSVC assessment in the CVE record: exploitation none, automatable yes, technical impact total.

Source: CISA KEV 2026.10.29, as of ; CVE List, as of ; FIRST EPSS, as of . About the data.

Description

xprtrdma: Decouple req recycling from RPC completion

In the Linux kernel, the following vulnerability has been resolved: xprtrdma: Decouple req recycling from RPC completion rl_kref formerly served two distinct lifetimes through a single refcount: it gated when a Reply could wake its RPC task, and it gated when an rpcrdma_req could return to its free pool. The marshal path took the Send-side reference only when SGEs needed DMA-unmap (sc_unmap_count > 0), which made a Send carrying only pre-registered buffers an exception: the Reply handler dropped rl_kref from 1 to 0 and freed the req while the HCA might still be DMA-reading from its send buffer. Give rl_kref a narrower job. The RPC layer takes one reference when slot allocation hands a req out. rpcrdma_prepare_send_sges() takes a Send-side reference unconditionally after WR preparation succeeds. xprt_rdma_free_slot() and xprt_rdma_bc_free_rqst() drop the RPC-layer reference; rpcrdma_sendctx_unmap() drops the Send-side reference. The req returns to its free pool only after both owners have signed off. The existing kref_init(&req->rl_kref) call in rpcrdma_prepare_send_sges() is removed. Initialization moves to the slot-allocation paths (xprt_rdma_alloc_slot and rpcrdma_bc_rqst_get), and the release callback re-arms rl_kref before the req returns to a free pool. A re-init in the marshal path would discard the RPC-layer reference that already exists on entry. Three invariants follow: - Any rpcrdma_req held by an rpc_rqst has rl_kref >= 1. xprt_rdma_alloc_slot(), rpcrdma_bc_rqst_get(), and the backlog-wake branch in xprt_rdma_alloc_slot() each kref_init rl_kref before publishing the req. Without this invariant, an RPC task that aborts between slot allocation and marshal (gss_refresh failure or signal during call_connect, for example) would drive xprt_release() -> xprt_rdma_free_slot() -> kref_put against a refcount of zero, saturating refcount_t and stranding the slot. - The Send-side reference is taken only after WR prep succeeds. A mapping failure in rpcrdma_prepare_send_sges() runs rpcrdma_sendctx_cancel(), which DMA-unmaps the sendctx and clears sc_req without touching rl_kref. The sendctx ring walks in rpcrdma_sendctx_put_locked() and rpcrdma_sendctxs_destroy() skip entries with sc_req == NULL, so a burst of -EIO marshal failures cannot hold reqs off rb_send_bufs. - The release callback re-arms rl_kref so the next consumer enters with the invariant satisfied. Replies now complete the RPC directly. rpcrdma_reply_handler() calls rpcrdma_complete_rqst() in place of kref_put on the non-LocalInv branch. The LocalInv branch already completes the RPC from frwr_unmap_async() and is unaffected. Because Send-side references can now outlive RPC completion, connection teardown drains sendctx entries whose unsignaled Sends never had a later signaled completion to walk the ring. rpcrdma_sendctxs_destroy() walks the active range and runs rpcrdma_sendctx_unmap() on each entry with a non-NULL sc_req before the request buffers are reset, and is moved ahead of rpcrdma_reqs_reset() in rpcrdma_xprt_disconnect() so the reqs are still in their pre-reset state when the Send-side refs are released. The drain creates a teardown-ordering hazard on the backchannel path. With the new lifetime, releasing a bc_prealloc req from rpcrdma_req_release() re-adds it to bc_pa_list. The disconnect in xprt_rdma_destroy() runs after xprt_destroy_backchannel() has already emptied bc_pa_list, so the drained reqs would otherwise leak. xprt_rdma_destroy() now runs xprt_rdma_bc_destroy(xprt, 0) a second time after the disconnect to reclaim them.

Source: CVE List, as of . About the data.

Timeline

DateEvent
CVE record published
CVE record last updated

References

6

Known exploited Linux vulnerabilities

  • CVE-2026-46300: Linux Kernel Missing Initialization of a Variable Vulnerability (added )
  • CVE-2025-39682: Linux Kernel Improper Check for Unusual or Exceptional Conditions Vulnerability (added )
  • CVE-2025-39964: Linux Kernel Race Condition Vulnerability (added )
  • CVE-2026-53266: Linux Kernel Out-of-Bounds Write Vulnerability (added )
  • CVE-2026-53362: Linux Kernel Unspecified Vulnerability (added )