Findings

CVE-2026-98056

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 g

Published Sep 25, 2026 · updated Oct 14, 2026

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.

Timeline

Detection, updates, and resolution for this record.

  1. Sep 25, 2026 · Catalog

    Detected

    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 ac

  2. Oct 14, 2026 · Catalog

    Updated

    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 ac

Affected

  • Ubuntu:16.04:LTS linux-hwe-edge4.8.0-28.30~16.04.1, 4.8.0-30.32~16.04.1, 4.8.0-32.34~16.04.1
  • Ubuntu:Pro:14.04:LTS linux-aws4.4.0-1002.2, 4.4.0-1003.3, 4.4.0-1005.5
  • Ubuntu:Pro:14.04:LTS linux-azure4.15.0-1023.24~14.04.1, 4.15.0-1030.31~14.04.1, 4.15.0-1031.32~14.04.1
  • Ubuntu:Pro:14.04:LTS linux-lts-xenial4.4.0-13.29~14.04.1, 4.4.0-14.30~14.04.2, 4.4.0-15.31~14.04.1
  • Ubuntu:Pro:16.04:LTS linux4.2.0-16.19, 4.2.0-17.21, 4.2.0-19.23
  • Ubuntu:Pro:16.04:LTS linux-aws4.4.0-1001.10, 4.4.0-1003.12, 4.4.0-1004.13
  • Ubuntu:Pro:16.04:LTS linux-aws-hwe4.15.0-1030.31~16.04.1, 4.15.0-1031.33~16.04.1, 4.15.0-1032.34~16.04.1
  • Ubuntu:Pro:16.04:LTS linux-azure4.11.0-1009.9, 4.11.0-1011.11, 4.11.0-1013.13
  • Ubuntu:Pro:16.04:LTS linux-gcp4.10.0-1004.4, 4.10.0-1006.6, 4.10.0-1007.7
  • Ubuntu:Pro:16.04:LTS linux-hwe4.8.0-36.36~16.04.1, 4.8.0-39.42~16.04.1, 4.8.0-41.44~16.04.1
  • Ubuntu:Pro:16.04:LTS linux-kvm4.4.0-1004.9, 4.4.0-1007.12, 4.4.0-1008.13
  • Ubuntu:Pro:16.04:LTS linux-oracle4.15.0-1007.9~16.04.1, 4.15.0-1008.10~16.04.1, 4.15.0-1009.11~16.04.1

Sources

References