Skip to main content

Linux Kernel CVE-2026-31557

| EUVDEUVD-2026-25450 HIGH
Improper Locking (CWE-667)
2026-04-24 Linux GHSA-7v44-fgx9-96v6
7.5
CVSS 3.1 · Vendor: Linux
View

Attack ChainAIDerived

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

  1. Recon
    Establish NVMe-oF RDMA connection
  2. Delivery
    Send async event trigger command
  3. Exploit
    Initiate disconnect during event processing
  4. Install
    Trigger nvmet_rdma_cm_handler
  5. C2
    Queue release_work on nvmet-wq
  6. Execute
    Recursive flush deadlocks worker
  7. Impact
    NVMe target hangs

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Proper locking
Exploitation Conditions

Requires target system running Linux kernel nvmet-rdma module (CONFIG_NVME_TARGET_RDMA=y/m) with active NVMe-over-Fabrics RDMA target configured and accepting client connections. Attacker must have network reachability to RDMA-capable ports (typically InfiniBand or RoCE networks) where nvmet-rdma listens. Exploitation limited to environments using RDMA transport-does not affect nvmet-tcp, nvmet-fc, or nvmet-loop transports. Triggering requires initiating disconnect on an established NVMe-oF RDMA connection while async events are pending, achievable via normal NVMe disconnect commands (nvme disconnect). No authentication bypass required as NVMe-oF targets accept connections based on network access controls and NQN (NVMe Qualified Name) subsystem configuration. Vulnerability does not affect systems without nvmet kernel modules loaded or those using only NVMe initiator (client) functionality.

Impact

Real-world risk is LOW despite the 7.5 CVSS score. The CVSS vector (AV:N/AC:L/PR:N/UI:N) suggests remote unauthenticated network exploitation with low complexity, but this is misleading-the vulnerability requires an active NVMe-over-Fabrics target deployment with RDMA transport, which is specialized storage infrastructure, not general-purpose servers. The EPSS score of 0.02% (5th percentile) confirms negligible observed exploitation activity. No CISA KEV listing indicates no active exploitation. The impact is purely availability (denial of service via deadlock), with no confidentiality or integrity compromise. Attack complexity is low only IF the target environment exists; automatable exploitation is possible but limited to triggering disconnect events on nvmet-rdma targets. The lockdep warning indicates this is primarily a reliability issue affecting production NVMe storage targets during normal disconnect operations rather than a critical security vulnerability. Prioritize patching for production NVMe-oF RDMA storage infrastructure; deprioritize for systems not running nvmet kernel modules.

Exploit ScenarioDerived

An attacker with network access to an NVMe-over-Fabrics RDMA target initiates repeated connection and disconnection sequences to the nvmet-rdma service. By timing disconnect requests to coincide with pending async event notifications, the attacker triggers the nvmet_rdma_cm_handler disconnect path while async_event_work is queued. This causes nvmet_ctrl_free() to flush work on nvmet-wq while already executing on that queue, creating a recursive lock deadlock detected by lockdep. The target's nvmet-wq worker thread hangs indefinitely, preventing processing of subsequent storage I/O operations and effectively denying service to legitimate NVMe-oF clients. No exploit code publicly identified, but exploitation requires only standard NVMe-oF client tools to trigger disconnect events.

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

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

Alert me

AnalysisAIv1 – Apr 27, 2026

A workqueue deadlock in Linux kernel NVMe-over-Fabrics target (nvmet) allows remote denial of service via recursive locking during controller disconnect. The nvmet subsystem's async event handler can trigger reentrant workqueue completion when nvmet_ctrl_free() flushes work on the same queue (nvmet-wq) that invoked it, causing a lockdep-detected recursive lock scenario. EPSS score of 0.02% indicates very low probability of exploitation in the wild. Patches available for kernel versions 6.12.80, 6.18.21, 6.19.11, and mainline 7.0 via upstream commits.

RemediationAI

Upgrade to patched Linux kernel versions: 7.0 or later for mainline, 6.19.11+ for 6.19.x series, 6.18.21+ for 6.18.x series, or 6.12.80+ for 6.12.x LTS series. Patches available from kernel.org stable repository via commits at https://git.kernel.org/stable/c/2922e3507f6d5caa7f1d07f145e186fc6f317a4e (mainline), https://git.kernel.org/stable/c/ca111c9d8d6c9d5735878d933a1716c4be86c2d1, https://git.kernel.org/stable/c/25ceffc1dabec3b93f458b437aae26f4da293f87, and https://git.kernel.org/stable/c/49c7c50ee6325a084216e94395e067ecde8088fa. If immediate patching is not feasible, temporarily disable nvmet-rdma module (rmmod nvmet_rdma) if NVMe-over-Fabrics RDMA target functionality is not business-critical; this prevents deadlock exposure but eliminates RDMA-based NVMe storage serving capability. Alternative workaround: switch NVMe-oF targets to TCP transport (nvmet-tcp) instead of RDMA, which uses different code paths unaffected by this workqueue issue, though with performance trade-offs (higher CPU utilization, increased latency). No configuration-based mitigation exists-code-level fix required.

Affected VersionsENISA

Linux patch: 6.18.21
Linux patch: 6.12.80
Linux patch: 7.0
Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 <49c7c50ee6325a084216e94395e067ecde8088fa
Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 <25ceffc1dabec3b93f458b437aae26f4da293f87
Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 <ca111c9d8d6c9d5735878d933a1716c4be86c2d1
Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 <2922e3507f6d5caa7f1d07f145e186fc6f317a4e
Linux patch: 6.19.11

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

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

Technical ContextAI · show details

The vulnerability exists in the Linux kernel's NVMe-over-Fabrics target implementation (nvmet), specifically in the RDMA connection manager path. NVMe-over-Fabrics (NVMe-oF) allows block storage access over network fabrics using RDMA for high-performance storage networking. The issue stems from improper workqueue design where async_event_work and release_work both execute on the shared nvmet-wq workqueue. When nvmet_rdma_cm_handler() initiates a disconnect, it queues release_work on nvmet-wq. This work calls nvmet_ctrl_free(), which attempts to flush async_event_work on the same queue, causing the worker thread to wait for itself-a classic recursive locking pattern detected by the kernel's lockdep validator. The technical chain involves three held locks: wq_completion for nvmet-wq (acquired twice recursively), work_completion for release_work, and rcu_read_lock. The fix isolates async event processing to a dedicated nvmet-aen-wq workqueue, preventing cross-queue flush dependencies.

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 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
SUSE HIGH
Red Hat 5.5 MEDIUM

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

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

Lifecycle Timeline

4
Patch released
Apr 27, 2026 - 20:14 nvd
Patch available
CVSS changed
Apr 27, 2026 - 15:22 NVD
7.5 (HIGH)
Patch available
Apr 24, 2026 - 16:16 EUVD
CVE Published
Apr 24, 2026 - 14:35 nvd
HIGH 7.5

DescriptionCVE.org

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

nvmet: move async event work off nvmet-wq

For target nvmet_ctrl_free() flushes ctrl->async_event_work. If nvmet_ctrl_free() runs on nvmet-wq, the flush re-enters workqueue completion for the same worker:-

A. Async event work queued on nvmet-wq (prior to disconnect): nvmet_execute_async_event() queue_work(nvmet_wq, &ctrl->async_event_work)

nvmet_add_async_event() queue_work(nvmet_wq, &ctrl->async_event_work)

B. Full pre-work chain (RDMA CM path): nvmet_rdma_cm_handler() nvmet_rdma_queue_disconnect() __nvmet_rdma_queue_disconnect() queue_work(nvmet_wq, &queue->release_work) process_one_work() lock((wq_completion)nvmet-wq) <--------- 1st nvmet_rdma_release_queue_work()

C. Recursive path (same worker): nvmet_rdma_release_queue_work() nvmet_rdma_free_queue() nvmet_sq_destroy() nvmet_ctrl_put() nvmet_ctrl_free() flush_work(&ctrl->async_event_work) __flush_work() touch_wq_lockdep_map() lock((wq_completion)nvmet-wq) <--------- 2nd

Lockdep splat:

============ WARNING: possible recursive locking detected 6.19.0-rc3nvme+ #14 Tainted: G N -------------------------------------------- kworker/u192:42/44933 is trying to acquire lock: ffff888118a00948 ((wq_completion)nvmet-wq){+.+.}-{0:0}, at: touch_wq_lockdep_map+0x26/0x90

but task is already holding lock: ffff888118a00948 ((wq_completion)nvmet-wq){+.+.}-{0:0}, at: process_one_work+0x53e/0x660

3 locks held by kworker/u192:42/44933: #0: ffff888118a00948 ((wq_completion)nvmet-wq){+.+.}-{0:0}, at: process_one_work+0x53e/0x660 #1: ffffc9000e6cbe28 ((work_completion)(&queue->release_work)){+.+.}-{0:0}, at: process_one_work+0x1c5/0x660 #2: ffffffff82d4db60 (rcu_read_lock){....}-{1:3}, at: __flush_work+0x62/0x530

Workqueue: nvmet-wq nvmet_rdma_release_queue_work [nvmet_rdma] Call Trace: __flush_work+0x268/0x530 nvmet_ctrl_free+0x140/0x310 [nvmet] nvmet_cq_put+0x74/0x90 [nvmet] nvmet_rdma_free_queue+0x23/0xe0 [nvmet_rdma] nvmet_rdma_release_queue_work+0x19/0x50 [nvmet_rdma] process_one_work+0x206/0x660 worker_thread+0x184/0x320 kthread+0x10c/0x240 ret_from_fork+0x319/0x390

Move async event work to a dedicated nvmet-aen-wq to avoid reentrant flush on nvmet-wq.

Executive ViewAI

Why It Matters

CVE-2026-31557 is a kernel-level denial-of-service vulnerability in NVMe-over-Fabrics storage target implementations that can cause system deadlock when controllers disconnect. Linux systems running vulnerable kernel versions with nvmet enabled risk service unavailability on storage infrastructure, particularly affecting data center environments relying on NVMe network access. The extremely low exploitation probability (EPSS 0.0%) and existing patches significantly reduce immediate operational risk.

Business Impact: Medium
Compensating Controls

Vendor-released patch: Linux kernel 6.12.80, 6.18.21, 6.19.11, or mainline 7.0. Until patching: disable NVMe-over-Fabrics target mode if not critical to operations, restrict controller disconnect frequency through connection pooling and session persistence policies, and implement alerting on workqueue lockdep warnings in kernel logs.

Threat Intelligence Overview

EPSS Score
0.0%
Top 95% exploitable
Data Quality
6 sources
Confidence: High

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.0%
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
Yes
Human Impact
Medium

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

Vendor StatusVendor

SUSE

Severity: High
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Fixed
SUSE Linux Enterprise Desktop 15 SP7 Fixed
SUSE Linux Enterprise High Availability Extension 15 SP7 Fixed
SUSE Linux Enterprise High Availability Extension 15 SP7 Fixed
SUSE Linux Enterprise High Performance Computing 15 SP7 Fixed

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