CVE-2026-31492 Overview
CVE-2026-31492 is a medium-severity vulnerability in the Linux kernel's RDMA/irdma driver. The flaw resides in the irdma_create_qp function, where the free_qp completion structure is used before initialization. When ib_copy_to_udata fails during queue pair creation, the kernel invokes irdma_destroy_qp for cleanup, which then waits on the uninitialized free_qp completion. This results in undefined behavior and potential denial of service on systems using Intel Ethernet RDMA hardware. The vulnerability is classified under CWE-908: Use of Uninitialized Resource.
Critical Impact
A local authenticated user can trigger an uninitialized resource use in the kernel's RDMA path, leading to kernel instability and denial of service on affected Linux systems.
Affected Products
- Linux Kernel 5.14 and subsequent stable branches incorporating the irdma driver
- Linux Kernel 7.0 release candidates (rc1 through rc7)
- Systems using Intel Ethernet RDMA (irdma) with InfiniBand verbs interface
Discovery Timeline
- 2026-04-22 - CVE-2026-31492 published to NVD
- 2026-04-28 - Last updated in NVD database
Technical Details for CVE-2026-31492
Vulnerability Analysis
The vulnerability exists in the Intel Ethernet RDMA (irdma) driver within the Linux kernel's InfiniBand (IB) subsystem. The irdma_create_qp function creates a queue pair (QP) for RDMA communication and copies user-space data via ib_copy_to_udata. If this copy operation fails, the driver invokes irdma_destroy_qp as an error recovery path.
The cleanup function waits on the free_qp completion object to synchronize queue pair destruction. However, the completion was not initialized before the failing ib_copy_to_udata call. Waiting on an uninitialized struct completion produces undefined kernel behavior, including possible hangs, deadlocks, or kernel panics affecting system availability.
Root Cause
The root cause is improper initialization ordering in irdma_create_qp. The free_qp completion structure was initialized later in the function flow, after ib_copy_to_udata. Error paths reachable before that initialization point reference an uninitialized synchronization primitive. The fix moves init_completion for free_qp to occur before any code path that could trigger irdma_destroy_qp.
Attack Vector
Exploitation requires local access with privileges to open RDMA device files and issue verbs requests. An attacker with access to /dev/infiniband/uverbs* devices can trigger queue pair creation requests crafted to force ib_copy_to_udata failures. Repeated triggering produces kernel-level disruption, denying service to legitimate workloads on the host. The attack does not require user interaction and impacts availability only, with no confidentiality or integrity exposure.
The vulnerability manifests in the queue pair creation error path. See the upstream kernel commits referenced below for complete technical details and the corrective patch.
Detection Methods for CVE-2026-31492
Indicators of Compromise
- Kernel log entries referencing irdma_create_qp failures followed by hangs in irdma_destroy_qp
- Soft lockup or hung task warnings naming the irdma driver in dmesg output
- Unexpected kernel taints or panics on hosts using Intel Ethernet RDMA hardware
Detection Strategies
- Inventory all Linux hosts running kernel 5.14 or later with the irdma module loaded using lsmod | grep irdma
- Audit running kernel versions against the patched commits listed in vendor advisories
- Monitor for processes invoking ibv_create_qp from unprivileged or unexpected accounts
Monitoring Recommendations
- Enable kernel audit logging for InfiniBand verbs device access under /dev/infiniband/
- Forward dmesg and journalctl -k output to a central log platform for kernel error correlation
- Alert on repeated queue pair creation failures from the same user context
How to Mitigate CVE-2026-31492
Immediate Actions Required
- Apply the upstream Linux kernel patches that initialize the free_qp completion before ib_copy_to_udata
- Restrict access to /dev/infiniband/uverbs* devices to trusted users and service accounts only
- Unload the irdma kernel module on systems that do not require RDMA functionality
Patch Information
The Linux kernel maintainers released fixes across multiple stable branches. Refer to the following commits for the corrective changes:
- Linux Kernel Commit 11a9552
- Linux Kernel Commit 3cb88c1
- Linux Kernel Commit ac1da7b
- Linux Kernel Commit af31040
- Linux Kernel Commit cd1534c
- Linux Kernel Commit f729968
Workarounds
- Blacklist the irdma kernel module on hosts that do not require Intel Ethernet RDMA functionality
- Apply strict filesystem permissions on InfiniBand uverbs device nodes to limit local access
- Isolate untrusted workloads from hosts exposing RDMA verbs interfaces
# Blacklist the irdma module to prevent loading
echo "blacklist irdma" | sudo tee /etc/modprobe.d/blacklist-irdma.conf
sudo rmmod irdma
# Restrict access to InfiniBand uverbs devices
sudo chmod 0660 /dev/infiniband/uverbs*
sudo chown root:rdma /dev/infiniband/uverbs*
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


