Skip to main content

Linux Kernel CVE-2026-93224

| EUVDEUVD-2026-86227 HIGH
2026-09-24 Linux GHSA-g4hj-w3xr-5rr3
8.1
CVSS 3.1 · Vendor: Linux
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach NFS-over-RDMA server on RDMA fabric
  2. Delivery
    Initiate connection triggering accept failure
  3. Exploit
    Unmatched rn_unregister erases foreign xarray slot 0
  4. Execution
    Refcount underflow + transport/namespace leak
  5. Impact
    Memory corruption / resource exhaustion (DoS)

Vulnerability Assessment

Exploitation Conditions

Requires a Linux host running the kernel NFS server with RDMA transport (svcrdma / NFS-over-RDMA) enabled and backed by RDMA-capable hardware (InfiniBand or RoCE) - a non-default, specialized deployment. Exploitation depends on svc_rdma_accept() taking its errout path before rpcrdma_rn_register() succeeds, i.e. a connection-setup/allocation failure during accept; this internal error condition is not straightforwardly forced by a remote client, which is the primary limiting factor. There is no authentication or user-interaction requirement beyond the ability to drive RDMA connection attempts to the server on the fabric.

Impact

This is a Linux kernel error-path bug in the svcrdma (server-side RDMA/NFS-over-RDMA) transport, not a directly weaponizable remote-code flaw. The NVD CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:N/C:H/I:H/A:H = 8.1) appears substantially overstated: the description details a refcount/xarray corruption and object leak, not any confidentiality primitive, so C:H/I:H are hard to justify - the realistic impact is memory corruption and resource exhaustion (crash/DoS), i.e. C:N/I:L/A:H. There is no EPSS score, no CISA KEV listing, and no public proof-of-concept, so all exploitation signals are absent. The vulnerability only triggers when svc_rdma_accept() takes its error path BEFORE rpcrdma_rn_register() succeeds - an internal allocation/connection-setup failure that is not cleanly attacker-controlled, which is consistent with the AC:H already in the vector but contradicts PR:N/AV:N in a way that overstates reach (RDMA fabric access, not arbitrary Internet reach). Net: a legitimate correctness/hardening fix worth patching on NFS/RDMA servers, but far below the 'critical' urgency the 8.1 implies. VERIFY: the CWE is 'N/A' in the input and the tag says 'Information Disclosure', both of which conflict with the actual mechanism (CWE-416/667/911 memory corruption + leak).

Exploit ScenarioDerived

An attacker (or a faulty client) repeatedly initiates RDMA connections to an NFS-over-RDMA server such that svc_rdma_accept() fails after partial setup; each failed accept erases another transport's xarray slot 0 and performs an unmatched kref_put on an unrelated rpcrdma_device, corrupting refcounts and leaking a svcxprt_rdma plus its pinned net namespace. Sustained failures cause resource exhaustion and potential use-after-free of other transports, degrading or crashing the server. No public exploit code exists, and the error path is difficult to trigger deterministically from the network.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.5% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 25, 2026

Failed connection acceptance in the Linux kernel's svcrdma transport (server-side NFS-over-RDMA) can corrupt reference-count and XArray registration state, leaking transport memory and mismatched device references. The bug is reachable only on hosts running the kernel NFS server over an RDMA fabric (InfiniBand or RoCE) where svc_rdma_accept() takes its error path before rpcrdma_rn_register() succeeds, and no public exploit has been identified at time of analysis. The assessed impact is primarily availability (repeated failed accepts leak svcxprt_rdma and its net/ns_tracker, leading to memory exhaustion) with a limited integrity effect from an erroneous erase of another caller's slot-0 entry; the CVSS vector carries PR:N, so no authentication is required, but attacks must originate from the adjacent RDMA fabric.

RemediationAI

Vendor-released patch: update to a fixed stable kernel - Linux 6.12.109, 6.18.50, or 7.2.4 (the 7.3-rc1 series also carries the fix) - or apply the corresponding upstream stable commits (0335800071a6dfdf7d21d729b5e7d8fa98936211, 5aabe070c00e5bdf4ab150fb5f72ad5f266d6241, 45a444a17240f4fa2235f0dfd4a96fc80f1eb2c2, 26190394c64c9429481fc88a4738f70bb92fb352); per the CVE record, a patch is available from the vendor. If immediate upgrade is not possible, stop exporting NFS over RDMA on affected hosts: disable or blacklist the server-side RDMA transport (e.g. avoid enabling nfsd's rdma capability, or unload rpcrdma/svcrdma) and serve NFS over TCP instead - the trade-off is loss of RDMA throughput and CPU offload, but the faulty accept-error path becomes unreachable. Additionally, restrict the RDMA fabric so only trusted, adjacent hosts can initiate connection attempts to the server (RoCE and InfiniBand are inherently fabric-local, but partition membership and pkey/VLAN isolation should be enforced), since the assessed vector is adjacent (AV:A) and requires only the ability to drive RDMA connection attempts; because repeated failed accepts leak transport memory, monitor kernel slab/transport allocations on nfsd RDMA endpoints for unexplained growth as a compensating detection measure until patching completes.

Affected VersionsENISA

Linux 6.16
Linux 6.15.4 <6.16
Linux patch: 0
Linux 6.12.35 <6.12.109
Linux cb3cba0ec372fa7c5f5f5c12990bef02e458ab86 <0335800071a6dfdf7d21d729b5e7d8fa98936211
Linux d310955106c358c8e1ea682defd8e21af44a6cba
Linux 8ac6fcae5dc0e801f1c82a83f5ae2c0a4db19932 <5aabe070c00e5bdf4ab150fb5f72ad5f266d6241
Linux patch: 6.18.50
Linux patch: 7.3-rc1
Linux patch: 6.12.109
Linux patch: 7.2.4
Linux 8ac6fcae5dc0e801f1c82a83f5ae2c0a4db19932 <45a444a17240f4fa2235f0dfd4a96fc80f1eb2c2
Linux 8ac6fcae5dc0e801f1c82a83f5ae2c0a4db19932 <26190394c64c9429481fc88a4738f70bb92fb352

Affected Packages

euvd linux fix: 6.12.109, 6.16

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

svcrdma is the server-side RDMA transport used by the kernel NFS server for NFS-over-RDMA (NFSoRDMA). Each transport registers itself with the rpcrdma device via rpcrdma_rn_register() and unregisters via rpcrdma_rn_unregister(), which performs xa_erase() on an XArray slot and a kref_put() on the rpcrdma_device's rd_kref. Because svcxprt_rdma is kzalloc'd, an errout path taken before registration leaves sc_rn.rn_index at 0 and sc_rn.rn_done at NULL; the unconditional unregister then erases another caller's slot 0 and performs an unmatched kref_put() against rd_kref. The same errout also brackets teardown with svc_xprt_get()/svc_xprt_put() around the kref_init() birth reference, so the kref cycles 1->2->1 and never reaches zero, permanently leaking the svcxprt_rdma and the net/ns_tracker it pinned. The fix treats rn_done == NULL as a "never registered" sentinel (rpcrdma_rn_register() writes rn_done last, after xa_alloc() and kref_get() succeed), guards rpcrdma_rn_unregister() with an early return, clears rn_done before the matching xa_erase() so repeat calls become no-ops, and takes a replacement module reference before svc_xprt_put() so the two module_put() calls triggered by svc_xprt_free() and svc_handle_xprt() remain balanced. No CWE identifier was supplied with this CVE, but the defect class is improper resource/reference-count lifecycle management (use-after-free-style state corruption combined with a memory leak).

Know when the next one hits your stack

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (Linux) PRIMARY 8.1 HIGH
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 5.9 MEDIUM

RDMA-fabric reach (AV:A), triggered only by a hard-to-force accept-failure race (AC:H); impact is cross-transport memory corruption and resource-leak DoS (A:H, I:L) with no data disclosure (C:N).

3.1 AV:A/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H
4.0 AV:A/AC:H/AT:P/PR:N/UI:N/VC:N/VI:L/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

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

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

Lifecycle Timeline

4
CVSS changed
Sep 25, 2026 - 05:23 NVD
8.1 (HIGH)
Patch available
Sep 24, 2026 - 17:18 EUVD
CVE Published
Sep 24, 2026 - 15:21 cve.org
HIGH 8.1
CVE Published
Sep 24, 2026 - 15:21 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

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

svcrdma: Fix unmatched rn_unregister on failed accept

When svc_rdma_accept() takes the errout path before rpcrdma_rn_register() has succeeded, the existing cleanup block calls rpcrdma_rn_unregister(dev, &newxprt->sc_rn) unconditionally. svcxprt_rdma is kzalloc'd, so on that path sc_rn.rn_index is 0 and sc_rn.rn_done is NULL; the unregister therefore xa_erase()s another caller's slot 0 and performs an unmatched kref_put() on the rpcrdma_device's rd_kref.

The same errout also brackets the cleanup with svc_xprt_get()/ svc_xprt_put() around the kref_init() birth reference. The kref goes 1 -> 2 -> 1 and never reaches 0, so the svcxprt_rdma (and the net/ns_tracker it pinned) is leaked on every failed accept.

rpcrdma_rn_register() writes rn->rn_done last, only after xa_alloc() and kref_get() have both succeeded, so rn_done == NULL is a natural "never registered" sentinel. Guard rpcrdma_rn_unregister() with an early return when rn_done is NULL, and clear rn_done before the matching xa_erase() so a repeated unregister is also a no-op.

With that guard in place, the accept errout drops the kref_init() birth reference via svc_xprt_put(), which dispatches svc_rdma_free(). Teardown of sc_qp, sc_sq_cq, sc_rq_cq, and sc_pd runs under existing IS_ERR/NULL guards in svc_rdma_free(); sc_rn is covered by the new rn_done sentinel; sc_cm_id is non-NULL on every errout path because svc_rdma_accept() dereferences it above the first goto errout.

svc_xprt_free() drops the module reference associated with the freed transport, and svc_handle_xprt() drops its pre-acquired reference when ->xpo_accept() returns NULL. Take a replacement module reference before svc_xprt_put() so the two module_put()s remain balanced.

The rn_done guard also covers svc_rdma_free()'s non-listener call to rpcrdma_rn_unregister() for transports whose register attempt failed or never ran.

Executive ViewAI

Why It Matters

The Linux kernel's NFS-over-RDMA server transport (svcrdma) is affected by CVE-2026-93224, a high-severity memory leak and reference-count corruption flaw that unauthenticated attackers on an adjacent RDMA fabric can trigger to cause memory exhaustion and denial of service on affected file servers. Organizations running kernel NFS servers over InfiniBand or RoCE-common in high-performance computing, storage clusters, and virtualized data centers-face service disruption that could cascade to dependent applications and users. No public exploit identified at time of analysis, but leadership should prioritize patching because these servers often underpin critical shared storage and repeated failed connection attempts silently degrade availability.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.5%
Top 63% exploitable
Prevalence
Low
Linux is ubiquitous, but the svcrdma NFS-over-RDMA server path needs RDMA hardware, rarely enabled
Data Quality
3 sources
Confidence: Low

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

40
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +40
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
openSUSE Tumbleweed Fixed
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected

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