KernelScan.io

HIGH Introduced in 6.0

erdma CQEvent UAF

CVE-2026-90309

CVSS 7.8 / 10.0 NVD

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

KernelScan AI7.0HIGH

01

In the Linux kernel, the following vulnerability has been resolved: RDMA/erdma: Hold CQ references when processing EQ events EQ handlers look up CQs from dev->cq_xa and invoke CQ completion or error callbacks outside the xarray lock. erdma_destroy_cq() can erase the CQ from the xarray and free its queue buffer and doorbell record while a previously scheduled EQ handler is still using the CQ. Add a CQ refcount and take a reference under the xarray lock with refcount_inc_not_zero(). Remove the CQ from the xarray before dropping the destroy-path reference, then wait for in-flight EQ users before releasing CQ resources.

02

Engine v0.6.0

Risk summary

A local user with access to an Alibaba erdma RDMA device can trigger a use-after-free by racing completion queue destruction against asynchronous event processing. Successful exploitation could lead to kernel memory corruption, information disclosure, or denial of service. The vulnerability requires specific erdma hardware and winning a narrow race window.

Affecteddrivers/infiniband/hw/erdma/erdma_eq.c, erdma_verbs.c, erdma_verbs.h (RDMA/erdma subsystem)

Vulnerability analysis

A race condition in the erdma RDMA driver allows a completion queue to be freed while an event queue handler is still using it. When the hardware signals a completion or error event, the handler looks up the target completion queue and processes it without holding a reference; if another thread destroys that same completion queue concurrently, its queue buffer and doorbell records can be freed while the event handler is still accessing them. The fix adds a reference count to each completion queue so that event handlers acquire a reference before touching the queue, and the destroy path removes the queue from the lookup table and waits for all in-flight users to finish before releasing any resources. This bug is reachable by any local user with access to the erdma RDMA device who can create and destroy completion queues, and exploitation requires winning a race between queue destruction and asynchronous event processing.

03

BranchIntroducedFixed inPatch commit
6.16.06.1.188610ef81797bb
6.126.06.12.11005b8ca493dd0
6.186.06.18.521fc9c1933959
7.26.07.2.64545f355654d
mainline6.07.3-rc198df2aee1459
6.66.06.6.157c0a83f29a24c
cip/6.126.06.12.111-cip3205b8ca493dd0