PT-2026-64547 · Linux · Linux
CVE-2026-64326
·
Published
2026-07-25
·
Updated
2026-07-25
None
No severity ratings or metrics are available. When they are, we'll update the corresponding info on the page.
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).
Found an issue in the description? Have something to add? Feel free to write us 👾
Related Identifiers
Affected Products
Linux