Skip to main content

Linux Kernel EUVDEUVD-2026-59368

| CVE-2026-72469 HIGH
2026-08-15 Linux GHSA-w6wr-jw44-5f3c
8.8
CVSS 3.1 · Vendor: Linux
Share

Severity by source

Vendor (Linux) PRIMARY
8.8 HIGH
AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
7.5 HIGH

AV:A because RDMA fabric adjacency is required; AC:H because exploitation demands a precise timing race before ESTABLISHED; PR:N because no authentication to the target is needed from the fabric.

3.1 AV:A/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:A/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
SUSE
5.5 MEDIUM
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Red Hat
7.0 MEDIUM
qualitative

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

Attack Vector
Adjacent
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

5
Analysis Generated
Aug 17, 2026 - 09:40 vuln.today
CVSS changed
Aug 17, 2026 - 06:22 NVD
8.8 (HIGH)
Patch available
Aug 15, 2026 - 07:20 EUVD
CVE Published
Aug 15, 2026 - 05:57 cve.org
HIGH 8.8
CVE Published
Aug 15, 2026 - 05:57 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

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

xprtrdma: Fix ep kref imbalance on ADDR_CHANGE

rpcrdma_cm_event_handler() falls through to the disconnected: label on RDMA_CM_EVENT_ADDR_CHANGE and calls rpcrdma_ep_put() with no matching get when the event arrives before RDMA_CM_EVENT_ESTABLISHED. The kref then underflows during connect teardown and rpcrdma_xprt_disconnect() operates on a freed ep.

Reference counts across a normal connection lifecycle:

rpcrdma_ep_create() kref_init ->1 rpcrdma_xprt_connect() ep_get ->2 (before post_recvs) RDMA_CM_EVENT_ESTABLISHED ep_get ->3 RDMA_CM_EVENT_DISCONNECTED ep_put ->2 rpcrdma_xprt_drain() ep_put ->1 rpcrdma_xprt_disconnect() tail ep_put ->0 (ep_destroy)

The connect-time get in rpcrdma_xprt_connect(), taken just before rpcrdma_post_recvs() "while there are outstanding Receives," is balanced by rpcrdma_xprt_drain. ADDR_CHANGE before ESTABLISHED has no get to consume, so its put drops the count to 1 and the drain put then frees the ep while rpcrdma_xprt_disconnect() still holds a pointer to it.

Fix by dispatching on the prior re_connect_status via xchg(): for prev 0 (pre-ESTABLISHED) wake the connect waiter and return with no put; for prev 1 call rpcrdma_force_disconnect() and return. The case-1 arm relies on the subsequent RDMA_CM_EVENT_DISCONNECTED event -- reliably delivered when rdma_disconnect() is called on a still-connected cm_id -- to balance the ESTABLISHED get; rpcrdma_xprt_drain() continues to balance only that connect-time get. Any other prior value means teardown is already in flight.

AnalysisAI

Reference-count (kref) underflow in the Linux kernel xprtrdma subsystem permits use-after-free when RDMA_CM_EVENT_ADDR_CHANGE is delivered before RDMA_CM_EVENT_ESTABLISHED during NFS-over-RDMA connection setup. An attacker on the same RDMA fabric who can induce an address-change event during the narrow pre-ESTABLISHED window may corrupt freed kernel memory, potentially leading to privilege escalation, arbitrary kernel code execution, or system crash. No public exploit exists and EPSS of 0.21% (11th percentile) reflects low automated exploitation probability; active exploitation has not been confirmed and no CISA KEV listing is present.

Technical ContextAI

The xprtrdma subsystem implements the RPC-over-RDMA transport for Linux NFS clients. Endpoint lifetime is managed through a Linux kref (kernel reference counter) on the rpcrdma_ep structure. In the normal connection lifecycle the kref is initialized to 1 at creation, incremented to 2 before rpcrdma_post_recvs(), incremented to 3 on RDMA_CM_EVENT_ESTABLISHED, and decremented back through DISCONNECTED, drain, and final destroy. The defect is that rpcrdma_cm_event_handler() falls through to its disconnected: label upon receiving RDMA_CM_EVENT_ADDR_CHANGE, unconditionally calling rpcrdma_ep_put() even though no matching ep_get() was performed for this event when it arrives before ESTABLISHED. The kref underflows to an unexpected value and the subsequent rpcrdma_xprt_drain() put frees the ep while rpcrdma_xprt_disconnect() still holds a live pointer - a textbook use-after-free. CPE cpe:2.3:a:linux:linux:*:*:*:*:*:*:*:* covers all affected kernel builds. While CWE is officially unassigned, this maps to CWE-911 (Improper Update of Reference Count) and CWE-416 (Use After Free). The fix dispatches on the prior re_connect_status via xchg(), correctly handling the pre-ESTABLISHED and post-ESTABLISHED cases without a spurious put.

RemediationAI

The primary fix is to upgrade to a patched Linux kernel: 6.12.97 (commit ffc07790539736a5d029f6a3c966b46c529f93a8), 6.18.40 (commit cfd1bab66b042da7a778786685125656c695931b), 7.1.5 (commit d0479c2b12974aa188b10d221a5770126b118b6d), or 7.2-rc1 (commit af9b65b29af341932625c4283dc7a23cdb62688a), all available from https://git.kernel.org/stable/. For systems that cannot be immediately patched, disabling the xprtrdma kernel module (modprobe -r xprtrdma) and remounting NFS shares over TCP eliminates the vulnerable code path entirely; the trade-off is loss of RDMA performance benefits but no loss of NFS functionality. As a network-layer compensating control, enforce strict InfiniBand partition or RoCE VLAN segmentation so that only trusted hosts can reach the RDMA fabric interfaces of NFS clients, reducing the attacker's ability to inject fabric events. This does not eliminate the vulnerability but significantly raises the bar for exploitation.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 16.0 Affected

Share

EUVD-2026-59368 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy