GPU VulnDB

Database/Firmware, BMC & network fabric

Linux kernel irdma: failed memory-region re-registration leaves a stale umem, leading to double free

CVSS 7.8CVE-2026-43120Firmware, BMC & network fabriccurated

Impact

In the Intel irdma provider, if irdma_rereg_mr_trans() fails after allocating a new umem, it releases the umem but leaves iwmr->region set. The failure is returned to userspace, the application then calls ibv_dereg_mr() as it should, and the dereg path sees a non-NULL umem and calls ib_umem_release() a second time. A double free of pinned-memory tracking state is a strong kernel heap primitive, and the trigger is an ordinary verbs call sequence that a tenant can provoke deliberately. This matters on fabric-attached GPU nodes because RDMA device files are handed to training jobs for NCCL/RoCE traffic, so the attacker is a normal tenant workload rather than an administrator. Exposure is limited to nodes using Intel RDMA-capable NICs with the irdma driver loaded - Mellanox/NVIDIA ConnectX fleets are not affected by this id.

Who can reach it

Local user with access to an RDMA verbs device (/dev/infiniband/uverbsN), which on GPU clusters typically means any pod granted RDMA resources. Authenticated local access only; the memory region re-registration path is reachable from unprivileged userspace verbs calls.

What to do

Patch to a stable kernel carrying the fix (backports on five branches in the record) and reboot the affected nodes; the irdma module can in principle be unloaded and reloaded, but not while RDMA jobs hold devices, so in practice this is a drain and reboot. Nodes that do not use Intel RDMA can confirm with lsmod | grep irdma and defer. No vendor advisory beyond the kernel commits is present in the record, so no fixed version is quoted here.

References

Related entries

All Firmware, BMC & network fabric entries

This entry is curated: imported from vendor advisories with machine assistance, not yet individually verified. Confirm against your vendor's advisory before acting, and report anything wrong.