CVEvulnerability
CVE-2025-37856
5.5 MEDIUM
Official page ↗
- Status
- Modified
- Published
- 2025-05-09
- Last modified
- 2026-10-21
- Assigner
- 416baaa9-dc9f-4396-8d5f-8c081fb06d67
- CVSS 3.1 (416baaa9-dc9f-4396-8d5f-8c081fb06d67)
- 7.8 HIGH — CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
- CVSS 3.1 ([email protected])
- 5.5 MEDIUM — CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
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 configurations
• linux linux kernel (< 6.12.24)
• linux linux kernel (>= 6.13 < 6.13.12)
• linux linux kernel (>= 6.14 < 6.14.3)
References
- https://git.kernel.org/stable/c/185fd73e5ac06027c4be9a129e59193f6a3ef202 Patch
- https://git.kernel.org/stable/c/7511e29cf1355b2c47d0effb39e463119913e2f6 Patch
- https://git.kernel.org/stable/c/9039afe6240ae01d6caf2fa731590ac74fb8a69b git.kernel.org
- https://git.kernel.org/stable/c/909e60fb469d4101c6b08cf6e622efb062bb24a1 Patch
- https://git.kernel.org/stable/c/bf089c4d1141b27332c092b1dcca5022c415a3b6 Patch