ZeroHour

CVE-2026-89534

niche

Use-after-free in Linux kernel svcrdma (NFS over RDMA) listener replacement

CVSS 3.1
8.8 high
EPSS
Published
()
Modified
AI analysis

The Linux kernel's svcrdma subsystem, which serves NFS over RDMA, mishandles the RDMA_CM_EVENT_ADDR_CHANGE event in svc_rdma_listen_handler(): if allocation of the replacement listener cm_id fails, the sc_cm_id pointer is left dangling at the old cm_id that the Connection Manager core is about to destroy. Any later dereference of that pointer -- notably svc_rdma_detach()'s rdma_disconnect() call during server shutdown -- becomes a use-after-free. An attacker on the same network segment (the CVSS attack vector is adjacent network) who can induce an address-change event while the replacement allocation is failing (e.g., under memory pressure) could trigger the flaw, potentially crashing the kernel or achieving memory corruption with high confidentiality, integrity, and availability impact. Only systems running an NFS server with the RDMA transport enabled (requiring InfiniBand, RoCE, or iWARP hardware) are affected; no public proof of concept or exploitation in the wild is known.

What to do: Apply kernel updates containing the svcrdma fixing commit (which NULLs sc_cm_id on the failure path and guards svc_rdma_detach()'s rdma_disconnect() call) as soon as your distribution ships them. If you cannot patch immediately and do not need NFS over RDMA, disable the RDMA transport on NFS servers or block/unload the relevant RDMA/InfiniBand modules. Check HPC and storage-cluster nodes running NFS servers with RDMA enabled, and watch for kernel crashes or oopses in svc_rdma code paths as potential indicators.

Affected
Linux kernel (svcrdma / NFSD RDMA transport)
Estimated exposure
nicheunknown; plausibly on the order of low thousands of HPC/storage cluster nodes — NFS over RDMA requires dedicated RDMA-capable hardware (InfiniBand/RoCE/iWARP) and is typically confined to internal HPC and storage-cluster networks rather than internet-facing services, and no public scan counts for svcrdma listeners are…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

In the Linux kernel, the following vulnerability has been resolved: svcrdma: Clear sc_cm_id when ADDR_CHANGE replacement fails When svc_rdma_listen_handler() handles RDMA_CM_EVENT_ADDR_CHANGE, it creates a replacement listener cm_id and returns 1, telling the CM core to destroy the old one. If the replacement allocation fails, sc_cm_id still points at the old cm_id that the CM core is about to destroy. Any subsequent dereference of sc_cm_id -- such as svc_rdma_detach()'s rdma_disconnect() call -- is a use-after-free. NULL sc_cm_id on the failure path and guard svc_rdma_detach()'s rdma_disconnect() call against NULL so that the listener can be torn down safely when the server shuts down.

Vector
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

In the news

No ingested article mentions this CVE yet.