CVE-2025-37856

btrfs: harden block_group::bg_list against list_del() races

MEDIUM
5.5
CVSS Score
Published: May 9, 2025 at 06:42 AM UTC
Updated: October 30, 2026 at 01:17 PM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
MEDIUM5.5
Exploit prediction
EPSS 0.3%

Description

In the Linux kernel, the following vulnerability has been resolved: btrfs: harden block_group::bg_list against list_del() races As far as I can tell, these calls of list_del_init() on bg_list cannot run concurrently with btrfs_mark_bg_unused() or btrfs_mark_bg_to_reclaim(), as they are in transaction error paths and situations where the block group is readonly. However, if there is any chance at all of racing with mark_bg_unused(), or a different future user of bg_list, better to be safe than sorry. Otherwise we risk the following interleaving (bg_list refcount in parens) T1 (some random op) T2 (btrfs_mark_bg_unused) !list_empty(&bg->bg_list); (1) list_del_init(&bg->bg_list); (1) list_move_tail (1) btrfs_put_block_group (0) btrfs_delete_unused_bgs bg = list_first_entry list_del_init(&bg->bg_list); btrfs_put_block_group(bg); (-1) Ultimately, this results in a broken ref count that hits zero one deref early and the real final deref underflows the refcount, resulting in a WARNING.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

v < 6.12.246.13 ≤ v < 6.13.126.14 ≤ v < 6.14.31eca70ef8cf499d0cb6d1bbd691558e7792cf175.15.1285d19abcffd8404078dfa7d7118cec357b5e7bc586.1.476.4.126.5a9f189716cf15913c453299d72f69c51a9b0f86bedf3b5aadb2515c808200b904baa5b70a727f0ac
Vendor states this is fixed in 185fd73e5ac06027c4be9a129e59193f6a3ef202 (fixed)
Vendor states this is fixed in 7511e29cf1355b2c47d0effb39e463119913e2f6 (fixed)
Vendor states this is fixed in 909e60fb469d4101c6b08cf6e622efb062bb24a1 (fixed)
Vendor states this is fixed in bf089c4d1141b27332c092b1dcca5022c415a3b6 (fixed)
Affected range stops below 5.16, so it looks safe — our inference, not a vendor statement
Vendor states this is fixed in 6.12.24 (unaffected)
Vendor states this is fixed in 6.13.12 (unaffected)
Vendor states this is fixed in 6.14.3 (unaffected)
Vendor states this is fixed in 6.15 (unaffected)
Affected range stops below 6.2, so it looks safe — our inference, not a vendor statement
Vendor states this is fixed in 6.5 (unaffected)
Vendor states this is fixed in 6.6.160 (unaffected)

CVSS

Attack Vector
LOCAL
Complexity
LOW
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
HIGH
Vector?

Quick Info

StatusMODIFIED
CWE
NVD-CWE-noinfo

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card