CVE-2026-98056

CVE-2026-98056

High · published September 25, 2026

CVSS v3.1
7.5
EPSS
1%
Percentile
48.2
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS v3.1
7.5 · HIGH
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00603 · 48.2th percentile
Published
2026-09-25T15:17Z
References (5)
EPSS history
Timeline
  • 27 SEP 03:28Z
    EPSS moved — → 1%
    epss
  • 25 SEP 10:24Z
    nvme: remove stale namespaces by NSID range during scan
    cvelistv5