CVE-2026-90292 in Linuxinfo

Summary

by MITRE • 09/17/2026

In the Linux kernel, the following vulnerability has been resolved:

RDMA/siw: Fix use-after-free in siw_accept()

siw_accept() looks up the QP supplied by userspace. If that QP is already in RTS, the function jumps to error cleanup before associating the incoming CEP with it.

The cleanup tests whether qp->cep is non-NULL and assumes the current call installed the association. However, qp->cep can point to the CEP of an existing connection. The cleanup then drops a reference from the incoming cep, not qp->cep. Once the incoming endpoint loses its remaining references, this can free it before the subsequent cep->qp store, causing a use-after-free. It also clears the existing QP association.

Only release the association reference when qp->cep is the incoming CEP. This preserves an existing association and avoids accessing the freed endpoint.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Analysis

by VulDB Data Team • 09/17/2026

The vulnerability identified in the Linux kernel's RDMA over Converged Ethernet (RoCE) implementation, specifically within the Silicon Interface (siw) driver, represents a critical use-after-free condition located in the siw_accept function. This flaw arises from an incorrect assumption regarding reference counting and object lifecycle management during the establishment of new connections. When userspace initiates a connection request by supplying a Queue Pair identifier to the kernel, the siw_accept routine attempts to locate the corresponding Queue Pair structure. If this target Queue Pair is already in the Ready To Send state, indicating it may be actively engaged or previously associated with another endpoint, the function diverts its execution path toward an error cleanup sequence rather than proceeding with standard connection acceptance logic. The core technical deficiency lies within this cleanup routine, which checks if a Connection Endpoint pointer exists on the Queue Pair structure and erroneously assumes that any such existing pointer was established by the current invocation of siw_accept.

In reality, qp->cep may point to an endpoint associated with a prior or concurrent connection rather than the incoming connection being processed in the current call. Consequently, when the cleanup code executes its reference dropping logic, it decrements the reference count on the wrong Connection Endpoint object—the existing one attached to the Queue Pair—rather than the newly created incoming endpoint intended for this specific request. This misdirected operation can lead to premature deallocation of memory if the incorrect endpoint loses all remaining references before subsequent operations complete. Specifically, a use-after-free scenario emerges because the code proceeds to store the new connection endpoint into qp->cep after having potentially freed an unrelated or incorrectly referenced object due to the flawed cleanup logic. This not only compromises memory safety but also corrupts the state of the Queue Pair by clearing its existing association unexpectedly.

The operational impact of this vulnerability is severe, as it allows for potential denial of service through kernel crashes and could theoretically be leveraged for arbitrary code execution if an attacker can carefully control the timing and allocation patterns to exploit the freed memory region. Such a flaw undermines the reliability of remote direct memory access operations, which are critical for high-performance computing environments relying on low-latency data transfers between nodes. The corruption of Queue Pair associations disrupts ongoing communications and may lead to undefined behavior in applications depending on stable RDMA connections. From a threat modeling perspective, this issue aligns with CWE-416, Use After Free, where the program continues to use a pointer after it has been freed, leading to unpredictable outcomes. Furthermore, the exploitation vector relates to ATT&CK technique T1059, Command and Scripting Interpreter, if an attacker uses such instability to trigger system crashes or manipulate kernel memory for further privilege escalation steps within the host environment.

Mitigation strategies must focus on correcting the reference counting logic within the siw_accept function. The primary fix involves ensuring that references are only released when qp->cep explicitly matches the incoming connection endpoint being processed, thereby preserving existing associations and preventing accidental deallocation of active objects. System administrators should apply kernel updates provided by their distribution vendors that include this patch to resolve the issue at the source code level. Additionally, organizations utilizing RDMA infrastructure should monitor for signs of instability in network performance or unexpected kernel panics associated with siw drivers. Regular auditing of kernel module configurations and keeping systems updated with the latest security patches are essential practices to maintain integrity against such low-level memory management errors that can have cascading effects on system stability and data confidentiality.

Responsible

Linux

Reservation

09/11/2026

Disclosure

09/17/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

very low

Sources

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!