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

block: skip sync_blockdev() on surprise removal in bdev_mark_dead()

bdev_mark_dead()'s @surprise == true means the device is already gone.
The filesystem callback fs_bdev_mark_dead() honours this and skips
sync_filesystem(), but the bare block device path (no ->mark_dead op)
lost its !surprise guard when the holder ->mark_dead callback was wired
up (see Fixes), and now calls sync_blockdev() unconditionally, which can
hang forever waiting on writeback that can no longer complete.

syzkaller hit this via nvme_reset_work()'s "I/O queues lost" path:
nvme_mark_namespaces_dead() -> blk_mark_disk_dead() ->
bdev_mark_dead(bdev, true) -> sync_blockdev() blocks in
folio_wait_writeback(), wedging the reset worker and every task waiting
on it.

Skip the sync on surprise removal, matching fs_bdev_mark_dead();
invalidate_bdev() still runs. Orderly removal (surprise == false) is
unchanged.

Found by FuzzNvme(Syzkaller with FEMU fuzzing framework).
Published: 2026-07-25
Score: 5.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Linux kernel contains a flaw in the block layer where the function bdev_mark_dead() incorrectly calls sync_blockdev() when a device is removed in surprise mode. This unconditional sync waits indefinitely on writeback that can never complete, causing the reset worker to hang and any tasks waiting on it to block. The issue does not corrupt memory or grant privileged access; it simply renders the system unresponsive when a surprise removal occurs, such as during an NVMe reset.

Affected Systems

All Linux kernel builds from the core distribution that have not yet incorporated the recent patch to bdev_mark_dead() are vulnerable. The flaw is present in the generic Linux kernel regardless of vendor or distribution, so any system using an unpatched kernel version prior to the fix can be affected.

Risk and Exploitability

The EPSS score is below 1%, indicating a low probability of exploitation. The vulnerability is not listed in CISA’s KEV catalog. With a CVSS score of 5.5, the flaw is assessed as medium severity, meaning it could allow a local or privileged attacker to cause a denial‑of‑service by triggering a surprise block‑device removal, such as an NVMe reset. The attack requires a path to invoke the bdev_mark_dead() function with surprise==true, typically by initiating an NVMe reset or other device wipe operation. Once triggered, the kernel will hang while waiting on writeback, causing a system‑wide block and unresponsiveness.

Generated by OpenCVE AI on September 4, 2026 at 23:48 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that includes the bdev_mark_dead() surprise removal fix.
  • If an update is not immediately available, consider disabling NVMe reset functionality or otherwise preventing calls to bdev_mark_dead() with surprise=true as a temporary workaround.
  • Monitor kernel logs and system responsiveness for hangs in reset workers or anomalies in block device removal, and apply the patch as soon as it becomes available.

Generated by OpenCVE AI on September 4, 2026 at 23:48 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4724-1 linux-6.12 new package
History

Fri, 04 Sep 2026 15:00:00 +0000

Type Values Removed Values Added
Weaknesses NVD-CWE-noinfo

Thu, 30 Jul 2026 04:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-404
CWE-590
CWE-667

Wed, 29 Jul 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-390
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.5, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Moderate


Sun, 26 Jul 2026 02:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-404
CWE-590
CWE-667

Sat, 25 Jul 2026 09:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: block: skip sync_blockdev() on surprise removal in bdev_mark_dead() bdev_mark_dead()'s @surprise == true means the device is already gone. The filesystem callback fs_bdev_mark_dead() honours this and skips sync_filesystem(), but the bare block device path (no ->mark_dead op) lost its !surprise guard when the holder ->mark_dead callback was wired up (see Fixes), and now calls sync_blockdev() unconditionally, which can hang forever waiting on writeback that can no longer complete. syzkaller hit this via nvme_reset_work()'s "I/O queues lost" path: nvme_mark_namespaces_dead() -> blk_mark_disk_dead() -> bdev_mark_dead(bdev, true) -> sync_blockdev() blocks in folio_wait_writeback(), wedging the reset worker and every task waiting on it. Skip the sync on surprise removal, matching fs_bdev_mark_dead(); invalidate_bdev() still runs. Orderly removal (surprise == false) is unchanged. Found by FuzzNvme(Syzkaller with FEMU fuzzing framework).
Title block: skip sync_blockdev() on surprise removal in bdev_mark_dead()
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-17T04:53:28.310Z

Reserved: 2026-07-19T15:36:31.780Z

Link: CVE-2026-64326

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Analyzed

Published: 2026-07-25T10:17:14.207

Modified: 2026-09-04T14:51:12.160

Link: CVE-2026-64326

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-07-25T00:00:00Z

Links: CVE-2026-64326 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-05T00:00:07Z

Weaknesses