CVE-2026-74571

btrfs: skip global block reserve accounting for rescue mounts

State
Published
Severity
Not scored
Published
Aug 15, 2026
Updated
Oct 30, 2026
Reserved
Aug 15, 2026

Read the record on cve.org

Description

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

btrfs: skip global block reserve accounting for rescue mounts

[BUG] Mounting with rescue=ibadroots after corrupting the block group tree root triggers a NULL pointer dereference:

BUG: kernel NULL pointer dereference, address: 0000000000000100 RIP: 0010:btrfs_update_global_block_rsv+0x9d/0x1c0 [btrfs] Call Trace: fill_dummy_bgs+0xd4/0x120 [btrfs] open_ctree+0xc6e/0x1ca0 [btrfs] btrfs_get_tree+0x50d/0xa40 [btrfs]

The same crash occurs with a corrupted raid stripe tree root, via btrfs_read_block_groups() instead of fill_dummy_bgs().

[CAUSE] With rescue=ibadroots, btrfs_read_roots() allows the mount to continue when either root cannot be read, leaving the corresponding root pointer NULL while its on-disk feature bit remains set.

btrfs_update_global_block_rsv() then dereferences the missing root based on the feature bit alone.

[FIX] Rescue mounts are fully read-only and cannot start transactions, so the global reserve is never consumed. Under btrfs_is_full_ro(), mark the reserve as full and return before performing the accounting.

And since we need to check if the fs is mount fully RO, export fs_is_full_ro() as btrfs_is_full_ro(), and move it to fs.h.

[ Squash the fs_is_full_ro() export commit into this one. ]

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • cbec34d3021d47007a0334c634f7053dbaf93d02 to before aa72cc4675240ab6b01ec72ac6a1fe832e715569Affected
  • 8dbfc14fc736eb701089aff09645c3d4ad3decb1 to before ca05d9abde2195cec3d07d0d4d65152d8171078fAffected
  • 8dbfc14fc736eb701089aff09645c3d4ad3decb1 to before 3a69fae2371a5ee190d4c4bbe5304a753558c1c6Affected
  • 8dbfc14fc736eb701089aff09645c3d4ad3decb1 to before 969a96479add6bd42d7f7241f99f27b31571a953Affected
  • 8dbfc14fc736eb701089aff09645c3d4ad3decb1 to before 076349e4c8d11f6b58c4549976a513b2b4dc6df2Affected
  • 8dbfc14fc736eb701089aff09645c3d4ad3decb1 to before 51a0e8399858621442807a26057bcd1cd3ced046Affected
  • 1e8087589b5cf6fa17adaf57b64cf1656d77dfecAffected
  • 6.1.43 to before 6.1.191Affected
  • 6.4.8 to before 6.5Affected
LinuxLinux
  • 6.5Affected
  • before 6.5Not affected
  • 6.1.191 through 6.1.*Not affected
  • 6.6.160 through 6.6.*Not affected
  • 6.12.114 through 6.12.*Not affected
  • 6.18.57 through 6.18.*Not affected
  • 7.1.8 through 7.1.*Not affected
  • 7.2 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.