data built 2026-10-19T13:16:53Z

Look up another CVE · open CVE-2026-74572 in the interactive tracker

CVE-2026-74572

btrfs: zoned: fix deadlock between metadata writeback and transaction commit

7.5 EPSS 0.3% AV:N

Published 2026-08-15 (2 months ago) by the Linux kernel CNA. Subsystem fs/btrfs. Debian urgency: unimportant.

What to do, per Debian release

Debian's own status for CVE-2026-74572 in every release this site tracks, and what each one means in practice. Every status below is the one the Debian Security Team publishes for this CVE. source

ReleaseStatus VersionWhat this means
Debian 12bookwormnot affected6.1.190-1Nothing to do. bookworm never shipped the vulnerable code.
Debian 13trixiefixedDSA-6466-1 · 2026-08-25 · text6.12.105-1Update the kernel and reboot. DSA-6466-1 shipped the fix on 2026-08-25, in 6.12.105-1. A running kernel keeps the old code until the machine restarts.
Debian 14forkyfixed7.1.8-1Update the kernel and reboot. Fixed in 7.1.8-1. A running kernel keeps the old code until the machine restarts.
Debian unstablesidfixed7.1.8-1Update the kernel and reboot. Fixed in 7.1.8-1. A running kernel keeps the old code until the machine restarts.
Debian 12bookworm · linux-6.12fixedDLA-4788-1 · 2026-09-19 · text6.12.107-1~deb12u1Update the kernel and reboot. DLA-4788-1 shipped the fix on 2026-09-19, in 6.12.107-1~deb12u1. A running kernel keeps the old code until the machine restarts.

The vulnerability

What the bug is

When writing out metadata extent buffers in a zoned filesystem, btree_writepages() holds fs_info->zoned_meta_io_lock across the whole writeback loop, including the call to btrfs_check_meta_write_pointer() -> check_bg_is_active(). For the tree-log block group, check_bg_is_active() may fail to activate the zone and fall back to btrfs_zone_finish_one_bg() to free an active zone. That path waits for the running transaction to commit while still holding zoned_meta_io_lock, but the committer needs that same lock to write out the tree extents, so the two tasks deadlock: Task A (kworker, metadata writeback) Task B (fsstress, transaction commit) ------------------------------------ ------------------------------------- wb_workfn() btrfs_commit_transaction(T) btree_writepages() btrfs_write_and_wait_transaction() btrfs_zoned_meta_io_lock() btrfs_write_marked_extents() btrfs_check_meta_write_pointer() btree_writepages() check_bg_is_active() [treelog_bg] btrfs_zoned_meta_io_lock() btrfs_zone_finish_one_bg() <blocks on zoned_meta_io_lock, btrfs_zone_finish() held by Task A> do_zone_finish() btrfs_inc_block_group_ro() btrfs_wait_for_commit() <blocks waiting for commit of transaction T, done by Task B> The sibling branch in check_bg_is_active() already drops zoned_meta_io_lock around do_zone_finish() for this exact reason. Do the same in the tree-log branch: release the lock around btrfs_zone_finish_one_bg() and re-acquire it afterwards. The lock only protects fs_info->active_{meta,system}_bg, which this branch does not touch, and ctx->zoned_bg keeps a reference to the block group across the unlock, so nothing is lost while the lock is dropped. This hang occasionally reproduces with fstests generic/475 on a zoned btrfs filesystem.

Where it lives

The fix touches these files. If the subsystem is one you do not use, the practical exposure is lower, though the package is still the vulnerable one.

fs/btrfs/zoned.c

What this is
BTRFS FILE SYSTEMMAINTAINERS section matched on fs/btrfs/ · linux-btrfs@vger.kernel.org · Maintained
Kernel module
btrfs

Check it on the machine

grep -wE 'CONFIG_BLK_DEV_ZONED|CONFIG_BTRFS_FS' /boot/config-$(uname -r)

Reads the booted kernel's own configuration, on the machine and nowhere else. =y is built in, =m is a module, and an is not set line means the code is not there.

lsmod | grep -w btrfs

Prints a line if that module is loaded right now, and nothing if it is not. One that is not loaded can still be loaded later by anything that needs it.

Show whether Debian builds this, per release

Debian builds this as a loadable module. Every release below compiles it as a module on every flavour, so whether the code is in the running kernel depends on whether that module is loaded.

  • bookworm, trixie, forky, sid, bookworm · linux-6.12m
m
a loadable module on every flavour - check lsmod, can be blacklisted
Build switches
CONFIG_BLK_DEV_ZONED, CONFIG_BTRFS_FS
Reads as
all on means the file is compiled; any one off means it is not.

From the configuration Debian publishes for every kernel flavour it builds. It covers only the architectures Debian ships a linux-config package for, and nothing about a kernel you built yourself. Debian's own status above stays authoritative about the source package.MAINTAINERS kbuild Makefiles Debian linux-config packages

Signals

Published
2026-08-15 (2 months ago)source
CVSS
7.5 high
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:Hsource recompute it
Attack vector
network (AV:N)source
EPSS
0.35%, higher than 26.6% of all CVEssource
CISA KEV
not listedthe KEV catalogue
Debian urgency
unimportantsource
Subsystem
fs/btrfs

Upstream fixes

The versions the CNA records as introducing and fixing this, and the commit for each. source

IntroducedFixed inCommit
6.66.6.15118577e77c2c8
6.66.12.103c3320873e0c0
6.66.18.44deddd28fd83c
6.67.1.875859a7cd77c
6.67.21ebe51c29fa9
6.5.500

Debian advisories

AdvisoryDateShipped toDebian
DLA-4788-12026-09-19bookworm 6.12.107-1~deb12u1tracker
DSA-6466-12026-08-25trixie 6.12.105-1tracker

Why the CNA scored it this way

Quoted from the kernel CNA's own scoring file, word for word. A highlighted metric carries the most severe value CVSS v3.1 defines for it, which is what pushes the score up. source

AV:NAttack vector, network
On storage servers exporting a zoned btrfs volume via nfsd or ksmbd, remote client write/fsync I/O reaches btrfs_commit_transaction() and btree_writepages() on the server kernel without any local syscall access.
AC:LAttack complexity, low
The attacker controls both deadlock participants by driving concurrent metadata dirtying/writeback and transaction commits (reproduced with fsstress/fstests generic/475); the kworker writeback side is a direct result of attacker-generated btree dirty pages.
PR:NPrivileges required, none
Exploitation requires only network write access to an NFS or SMB export of the zoned btrfs filesystem; no local account, capability, or init-namespace privilege is needed when the export permits client writes.
UI:NUser interaction, none
The deadlock is triggered entirely by the attacker's own concurrent write and sync I/O; no victim must mount a filesystem, open a file, or perform any interactive action.
S:UScope, unchanged
The mutex deadlock freezes btrfs metadata I/O within the same host kernel security authority; it does not cross a VM, IOMMU, or sandbox boundary.
C:NConfidentiality impact, none
This is a lock-ordering deadlock with no memory corruption, out-of-bounds access, use-after-free, or information disclosure of any kind.
I:NIntegrity impact, none
The bug causes tasks to block indefinitely on locks but does not corrupt, modify, or overwrite any data or enable arbitrary writes or code execution.
A:HAvailability impact, high
The circular wait between zoned_meta_io_lock and btrfs_wait_for_commit() permanently hangs metadata writeback and transaction commit, freezing all I/O on the affected zoned btrfs filesystem.