Skip to main content

Linux Kernel CVE-2026-98056

| EUVDEUVD-2026-86709 HIGH
2026-09-25 Linux GHSA-q2jc-ghv3-8x67
7.5
CVSS 3.1 · Vendor: Linux
View

Attack ChainAIDerived

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

  1. Access
    Control malicious NVMe/NVMe-oF target
  2. Delivery
    Host connects and initiates namespace scan
  3. Exploit
    Target reports sparse 32-bit NSID list
  4. Execution
    Scan loop spins billions of iterations per gap
  5. Impact
    CPU soft lockup / DoS

Vulnerability Assessment

Exploitation Conditions

Requires the Linux host to attach to an NVMe target (NVMe-over-Fabrics controller or a crafted local NVMe device) that is under attacker control or misbehaving and that reports a sparse 32-bit NSID namespace list with a large gap between valid NSIDs. The soft lockup occurs during nvme_scan_work / nvme_scan_ns_list() namespace scanning when it walks each NSID in the gap one at a time. Limiting factors: the host administrator must initiate the connection to the malicious target (typically CAP_SYS_ADMIN 'nvme connect' for fabrics, or physical attachment for a local device), so this is not a drive-by unauthenticated exploit; impact is availability only (no data exposure or code execution), and patched kernels bound the work to namespaces actually present.

Impact

The single strong signal is CVSS availability impact (A:H) - this is a pure denial-of-service (soft lockup, watchdog 'CPU stuck for 26s' in nvme_scan_work), with C:N/I:N confirming NO confidentiality or integrity impact. The 'Information Disclosure' tag directly contradicts the CVSS vector and the description and is mislabeled. The NVD vector claims AV:N/AC:L/PR:N (network, low complexity, unauthenticated) yielding 7.5, but the description shows the lockup is triggered when the host scans a target that reports a sparse 32-bit NSID list - which requires the host to connect to a malicious/misbehaving NVMe target (typically an NVMe-oF fabrics target the admin explicitly connects to, or a crafted local device). That precondition makes AC:L optimistic; realistic complexity is higher because it depends on a specifically crafted sparse-NSID target and a victim-initiated connection. No EPSS, no CISA KEV, and no public POC are present. Net: a high-CVSS number driven by A:H, but real-world priority is LOW - a targeted DoS requiring attacker control of a storage target, not a widespread remotely-weaponizable flaw. No public exploit identified at time of analysis.

Exploit ScenarioDerived

An attacker who controls an NVMe-over-Fabrics target (or supplies a malicious NVMe device) advertises a namespace list with a huge sparse gap between valid NSIDs. When the Linux host connects and runs nvme_scan_work, nvme_scan_ns_list() iterates once per NSID across the ~4-billion-wide gap, pinning a CPU and triggering a soft lockup / denial of service. No public exploit code is known; exploitation requires the host to attach to the malicious target.

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

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

Alert me

AnalysisAIv1 – Sep 25, 2026

A soft-lockup denial of service in the Linux kernel NVMe driver lets an attacker-controlled or misbehaving NVMe target stall host CPUs by advertising a sparse 32-bit namespace ID list containing a large gap, because nvme_scan_ns_list() walks every missing NSID one at a time instead of only the namespaces actually present. Practical exploitation is not drive-by: the host administrator must first attach the host to the hostile target, either over NVMe-over-Fabrics (an 'nvme connect' style operation) or through a crafted local NVMe device, and the resulting impact is availability only (C:N/I:N, A:H; assessed vector CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H, feed score 7.5). No public exploit identified at time of analysis and no CISA KEV entry is associated with this CVE, but vendor-released patches exist in the 6.12.111, 6.18.53, 7.2.7 and 7.3-rc2 kernel releases.

RemediationAI

The primary fix is to upgrade to a kernel containing the range-based stale-namespace removal, i.e. vendor-released patch versions 6.12.111, 6.18.53, 7.2.7 or 7.3-rc2 (stable commits c84ad7407fb16b92d9b7a649cc304a9cf3757897, f56b2bb4b18b017b056c4c17c66b2c4c54bf6ee4, 4ed7f3d7d435bf5b63da2814dc9270f5ba896011, 52200fc41a79da430ccf7c126ed837535b087ea2, published via https://git.kernel.org/stable/c/c84ad7407fb16b92d9b7a649cc304a9cf3757897 and the sibling commit URLs); downstream distributions should track the corresponding stable backport in their kernel-6.12.y/6.18.y/7.x branches. Until patching, the effective compensating control is to refuse connection to untrusted or unverified NVMe targets: block or tightly restrict 'nvme connect' operations against NVMe-over-Fabrics endpoints outside a vetted inventory (this removes the entire attack path but forbids legitimate multi-tenant or third-party fabric use), and treat physical attachment of untrusted NVMe devices as a risk; because fabrics connection already requires CAP_SYS_ADMIN, additionally ensuring that capability is granted only to trusted operators limits exposure but does not help against a compromised privileged user. There is no kernel runtime toggle that disables only the stale-namespace scan, so monitoring for 'soft lockup' and nvme-wq 'CPU stuck' watchdog messages is useful only for detection and does not prevent the DoS, and rebooting an affected host clears the stuck scan but the condition recurs on the next scan of the hostile target; deploying a newer kernel is therefore the only complete remediation.

Affected VersionsENISA

Linux 540c801c65eb58e05e0ca38b6fd644a83d7e2b33 <c84ad7407fb16b92d9b7a649cc304a9cf3757897
Linux patch: 6.18.53
Linux 4.5
Linux patch: 7.3-rc2
Linux 540c801c65eb58e05e0ca38b6fd644a83d7e2b33 <f56b2bb4b18b017b056c4c17c66b2c4c54bf6ee4
Linux patch: 0
Linux 540c801c65eb58e05e0ca38b6fd644a83d7e2b33 <4ed7f3d7d435bf5b63da2814dc9270f5ba896011
Linux patch: 6.12.111
Linux 540c801c65eb58e05e0ca38b6fd644a83d7e2b33 <52200fc41a79da430ccf7c126ed837535b087ea2
Linux patch: 7.2.7

Affected Packages

euvd linux no fix

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

The flaw lives in the Linux NVMe core (nvme_core, CPE cpe:2.3:a:linux:linux:*:*:*:*:*:*:*:*), specifically in the namespace scan path executed on the nvme-wq workqueue by nvme_scan_work() -> nvme_scan_ns_list(). After a controller reports its active NSID list, the driver reconciles it against ctrl->namespaces and removes namespaces that are no longer advertised; the vulnerable implementation called nvme_find_get_ns() once for every NSID value in each gap of the reported list rather than once per resident namespace. Because NSIDs are 32-bit, a target with a sparse NSID space (for example IDs at 1 and 0xFFFFFFF0) forces the loop through billions of iterations of find/get plus SRCU lock and unlock work, producing the observed watchdog 'soft lockup - CPU#4 stuck for 26s' with the stack nvme_find_get_ns -> nvme_scan_ns_list -> nvme_scan_work. The fix renames nvme_remove_invalid_namespaces() to nvme_remove_nsid_range(), passes an open (start, end) NSID range, and walks the NSID-sorted ctrl->namespaces list once, stopping when end is reached, so the work is bounded by namespaces actually present instead of by the size of the NSID gap. Source data records CWE as N/A; from the code behaviour the root-cause class is an algorithmic-complexity / resource-consumption defect (CWE-407/CWE-400 style unbounded loop) rather than a memory-safety issue, which matches the availability-only impact. Note two data-quality points: the feed-supplied vector lists AC:L while the independent assessment rates AC:H given the host-initiated attachment prerequisite (the assessment value should be treated as authoritative), and a general 'Information Disclosure' tag in the feed is not supported by the description, the C:N component, or the ENISA EUVD record for CVE-2026-98056 / EUVD-2026-86709.

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
vuln.today AI 5.9 MEDIUM

AV:N because an NVMe-oF target can be network-reachable, but AC:H since it needs a crafted sparse-NSID target and a victim-initiated connection; impact is availability-only DoS, so C:N/I:N/A:H.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:H/AT:N/PR:N/UI:N/VC:N/VI:N/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 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
CVSS changed
Sep 25, 2026 - 15:22 NVD
7.5 (HIGH)
Patch available
Sep 25, 2026 - 11:02 EUVD
CVE Published
Sep 25, 2026 - 10:24 cve.org
HIGH 7.5
CVE Published
Sep 25, 2026 - 10:24 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

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

nvme: remove stale namespaces by NSID range during scan

nvme_scan_ns_list() drops the stale namespaces in each gap in the reported NSID list one NSID at a time. Every iteration calls nvme_find_get_ns() to look the namespace up and removes it if it is present. The loop runs once per NSID in the gap rather than once per namespace actually present.

NSIDs are 32-bit, so a target with a sparse NSID space can make a single gap spin the loop billions of times with nothing to remove.

watchdog: BUG: soft lockup - CPU#4 stuck for 26s! Workqueue: nvme-wq nvme_scan_work [nvme_core] RIP: 0010:__srcu_read_unlock+0xb/0x20 Call Trace: nvme_find_get_ns+0x7d/0xb0 [nvme_core] nvme_scan_ns_list+0xe8/0x280 [nvme_core] nvme_scan_work+0x18a/0x280 [nvme_core] process_one_work+0x197/0x380 worker_thread+0x2fe/0x410 kthread+0xe0/0x100

Rename nvme_remove_invalid_namespaces() to nvme_remove_nsid_range() and give it an open (start, end) NSID range. ctrl->namespaces is sorted by NSID, so the whole gap is dropped in a single walk that stops once end is reached. This bounds the work by the namespaces that are present instead of by the size of the gap.

Executive ViewAI

Why It Matters

A flaw in the Linux kernel NVMe storage driver allows a malicious or malfunctioning NVMe storage target to stall host CPUs and cause a denial-of-service condition on affected Linux systems. Because the attack requires an administrator to first connect the host to that hostile target, exposure is limited to environments where storage endpoints are not strictly trusted or controlled. Leadership should care because the impact is availability of Linux-based servers and storage infrastructure, and vendor fixes are already available for the supported kernel releases.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.6%
Top 53% exploitable
Prevalence
Ubiquitous
nvme_core driver present on virtually all modern Linux systems with NVMe storage
Data Quality
4 sources
Confidence: Medium

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.6%
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

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

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

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