← Back to CVE List
CVE-2026-90423NVD
Vulnerability Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/rxe: Fix UAF in ODP init error-handling path
rxe_odp_mr_init_user() stores &umem_odp->umem in mr->umem before
calling rxe_odp_init_pages(). If rxe_odp_init_pages() fails,
rxe_odp_mr_init_user() releases umem_odp and returns an error.
rxe_reg_user_mr() then unwinds the error through rxe_cleanup(),
rxe_mr_cleanup(), ib_umem_release(mr->umem). There is an
IS_ERR_OR_NULL(umem) check at the start of ib_umem_release().
But since mr->umem is NOT reset to NULL in the error handling
path of rxe_odp_mr_init_user(), the check passes and it reads
already-freed fields like umem->is_dmabuf, causing UAF.
Fix the UAF by clearing mr->umem after releasing the failed
ODP umem so the MR cleanup path does not release it again.
RDMA/rxe: Fix UAF in ODP init error-handling path
rxe_odp_mr_init_user() stores &umem_odp->umem in mr->umem before
calling rxe_odp_init_pages(). If rxe_odp_init_pages() fails,
rxe_odp_mr_init_user() releases umem_odp and returns an error.
rxe_reg_user_mr() then unwinds the error through rxe_cleanup(),
rxe_mr_cleanup(), ib_umem_release(mr->umem). There is an
IS_ERR_OR_NULL(umem) check at the start of ib_umem_release().
But since mr->umem is NOT reset to NULL in the error handling
path of rxe_odp_mr_init_user(), the check passes and it reads
already-freed fields like umem->is_dmabuf, causing UAF.
Fix the UAF by clearing mr->umem after releasing the failed
ODP umem so the MR cleanup path does not release it again.
CVSS v3.1 Base Metrics — Score 7.8 (HIGH)
Attack VectorLocal
Attack ComplexityLow
Privileges RequiredLow
User InteractionNone
ScopeUnchanged
ConfidentialityHigh
IntegrityHigh
AvailabilityHigh
Affected & Patched Versions
- Linux Linux >= d03fb5c6599e31b90c6b5f65d43d6ccc6b49eb91 and < 5f1933163327c9f1c8f2a341c6cb551aaf231ff9
- Linux Linux >= d03fb5c6599e31b90c6b5f65d43d6ccc6b49eb91 and < 4cfb448705da3171d44d9cbe7be53ff03284d532
- Linux Linux >= d03fb5c6599e31b90c6b5f65d43d6ccc6b49eb91 and < 51f2c8d2c99fc1f452f7113c08a35edcc4bf8732
- Linux Linux >= 6.15
- Linux Linux 5f1933163327c9f1c8f2a341c6cb551aaf231ff9
- Linux Linux 4cfb448705da3171d44d9cbe7be53ff03284d532
- Linux Linux 51f2c8d2c99fc1f452f7113c08a35edcc4bf8732