In the Linux kernel, the following vulnerability has been resolved:
block: skip syncblockdev() on surprise removal in bdevmark_dead()
bdevmarkdead()'s @surprise == true means the device is already gone. The filesystem callback fsbdevmarkdead() honours this and skips syncfilesystem(), but the bare block device path (no ->markdead op) lost its !surprise guard when the holder ->markdead 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 nvmeresetwork()'s "I/O queues lost" path: nvmemarknamespacesdead() -> blkmarkdiskdead() -> bdevmarkdead(bdev, true) -> syncblockdev() blocks in foliowait_writeback(), wedging the reset worker and every task waiting on it.
Skip the sync on surprise removal, matching fsbdevmarkdead(); invalidatebdev() still runs. Orderly removal (surprise == false) is unchanged.
Found by FuzzNvme(Syzkaller with FEMU fuzzing framework).
{
"cna_assigner": "Linux",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/64xxx/CVE-2026-64326.json"
}