KernelScan.io

HIGH Introduced in 5.3

rdma CounterRelease UAF

CVE-2026-92509

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/core: Fix potential use after free in counter_release() When accessing a counter via the netlink path the only synchronization mechanism for the said counter is rdma_restrack_get(). Currently, rdma_restrack_del() is invoked at the end of counter_release(), which is too late, since by that point vendor-specific resources associated with the counter might already be freed. This can leave a short window where the counter remains accessible through restrack, leading to a potential use-after-free. Fix this by moving the rdma_restrack_del() call to be before the freeing of the vendor-specific resources, ensuring that the counter is removed from restrack before its internal resources are released. This guarantees that no new users hold references to a counter that is in the process of destruction.

02

Engine v0.6.0

Risk summary

A local attacker who can access the RDMA netlink interface can race a counter-destruction path against a restrack query, causing a use-after-free on kernel heap memory. This can lead to privilege escalation, information disclosure, or denial of service. The bug requires RDMA/InfiniBand hardware to be present on the system.

Affecteddrivers/infiniband/core/counters.c (RDMA core)

Vulnerability analysis

When an RDMA counter is destroyed, the cleanup path frees vendor-specific resources before removing the counter from the resource tracking database, leaving a window where a concurrent netlink query can still find the counter and access its already-freed internals. Additionally, the lookup path takes a reference without checking whether the refcount has already reached zero, so it can hand out a pointer to a counter that is mid-teardown. The fix moves the resource-tracking removal to before any vendor resources are freed, and switches the lookup to an atomic refcount check that refuses to return a counter whose last reference is already gone. The bug is reachable locally through the RDMA netlink interface, which requires CAP_NET_ADMIN — obtainable by an unprivileged user inside a user namespace — and requires RDMA/InfiniBand hardware to be present on the system.

03

BranchIntroducedFixed inPatch commit
6.15.36.1.1885eb0c57a8b56
6.125.36.12.1102f0c6705e26b
7.25.37.2.664c72390d840
mainline5.37.3-rc1235ef2d0e750
6.185.36.18.528c013e3a8d82
6.65.36.6.157d5cc211e8c39
cip/6.125.36.12.111-cip322f0c6705e26b