CVE-2026-89798

rpcrdma: arm rn_done before publishing the notification

State
Published
Severity
Not scored
Published
Sep 16, 2026
Updated
Oct 19, 2026
Reserved
Sep 11, 2026

Read the record on cve.org

Description

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.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 7e86845a0346efc95fddaa97ce5cd6a8bda8c71c to before f9fe3cad43c42d874a388583552b39b411d886ebAffected
  • 7e86845a0346efc95fddaa97ce5cd6a8bda8c71c to before 3c97b8e76ca2bba9e8770571413aed694068e78eAffected
  • 7e86845a0346efc95fddaa97ce5cd6a8bda8c71c to before ea0408273ccf5df1fb52d9a1b9db4d31600dcb36Affected
  • 7e86845a0346efc95fddaa97ce5cd6a8bda8c71c to before 5b06f706374c37375bdff9d21cc10e61df925a92Affected
LinuxLinux
  • 6.11Affected
  • before 6.11Not affected
  • 6.12.111 through 6.12.*Not affected
  • 6.18.51 through 6.18.*Not affected
  • 7.2.5 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.