CVE-2026-89798

CVE-2026-89798

published September 16, 2026

CVSS
—
EPSS
0%
Percentile
9.4
In the wild
Unconfirmed
What it is

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

rpcrdma: arm rn_done before publishing the notification

rpcrdma_rn_register() inserts @rn into rd_xa with xa_alloc() before

storing the caller's callback in rn->rn_done. The xarray makes @rn

reachable to rpcrdma_remove_one(), which walks rd_xa and invokes

rn->rn_done(rn) for every registered notification. A device removal

that races a fresh registration can therefore observe @rn with

rn_done still NULL, because the notification objects are zero

allocated by their owners, and call through a NULL function pointer.

Store rn->rn_done before xa_alloc() publishes @rn. The xarray's

store-side and load-side ordering then guarantees that any CPU which

finds @rn in rd_xa also observes the armed callback.

rpcrdma_rn_unregister() treats a non-NULL rn_done as the sentinel

for a completed registration, so the early store must not survive a

failed registration. Clear rn_done again when xa_alloc() fails.

Were it left set, the failed-accept cleanup path would call

rpcrdma_rn_unregister() on an @rn that was never inserted, erasing

an unrelated rd_xa slot and underflowing rd_kref.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00200 · 9.4th percentile
Published
2026-09-16T15:16Z
References (4)
EPSS history
Timeline
  • 18 SEP 04:02Z
    EPSS moved — → 0%
    epss
  • 16 SEP 10:30Z
    rpcrdma: arm rn_done before publishing the notification
    cvelistv5