KernelScan.io

HIGH Introduced in 4.6

rdmavt AllocDevice UAF

CVE-2026-93104

CVSS 7.0 / 10.0 KernelScan AI

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

01

In the Linux kernel, the following vulnerability has been resolved: RDMA/rvt: Return NULL after port allocation failure rvt_alloc_device() deallocates the IB device when its port array cannot be allocated but then returns the pointer to the released allocation. Callers treat any non-NULL value as valid and dereference it, resulting in a use-after-free. Return NULL immediately after deallocation so callers can propagate the allocation failure.

02

Engine v0.6.0

Risk summary

A use-after-free in the rdmavt RDMA driver's device allocation path occurs when a port array allocation fails under memory pressure. The freed device pointer is returned to callers instead of NULL, leading to dereference of released memory. Any local user who can induce OOM conditions on a system with the rdmavt module loaded (typically alongside hfi1 or qib InfiniBand hardware) can trigger this bug, potentially achieving kernel code execution or a system crash.

Affecteddrivers/infiniband/sw/rdmavt/vt.c (RDMA/rvt)

Vulnerability analysis

When the rdmavt RDMA driver sets up a new device, it creates the main device structure first, then tries to allocate memory for the per-port data. If that second allocation fails, the driver frees the device structure but accidentally returns the now-stale pointer instead of NULL. Callers assume any non-NULL result is valid and use it, accessing memory that has already been released. The fix makes the driver return NULL immediately after freeing, so callers properly detect the failure. The bug is reached during RDMA device initialization when the driver loads, typically automatic when hfi1 or qib InfiniBand hardware is present. An unprivileged local user can trigger the allocation failure by causing system-wide memory pressure, though exploiting the use-after-free would also require careful heap manipulation to replace the freed object with attacker-controlled data.

03

BranchIntroducedFixed inPatch commit
6.124.66.12.1145a1a7a5e2fe1
6.184.66.18.5780968b42d130
6.64.66.6.160b7129930d1ec
7.24.67.2.6b1e1b25723af
mainline4.67.32982eaf3b9d2

04

State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.

CIP treeState
cip/6.12Affected — no CIP fix yet (latest 6.12.112-cip33)
cip/6.1Affected — no CIP fix yet (latest 6.1.189-cip61)
cip/6.1-rtAffected — no CIP fix yet (latest 6.1.189-cip61-rt32)
cip/5.10Affected — no CIP fix yet (latest 5.10.271-cip78)
cip/5.10-rtAffected — no CIP fix yet (latest 5.10.268-cip77-rt34)
cip/4.19Affected — no CIP fix yet (latest 4.19.325-cip136)
cip/4.19-rtAffected — no CIP fix yet (latest 4.19.325-cip136-rt50)