Skip to main content
← All vulnerabilities
CVE-2025-37856

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

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 6.1.191, 5.16, 6.5, 6.6.160, 6.12.24, and 2 more
None on Exploit-DB, Metasploit or GitHub

Summary

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.

Timeline

  1. CVE published
  2. Record last updated

Affected versions

  • Linux Linux

    From 6.1.47 · fixed in 6.1.191; From 5.15.128 · fixed in 5.16; From 6.4.12 · fixed in 6.5

  • Linux Linux

    6.5

  • KernelLinux

    From 6.5.0 · fixed in 6.6.160; From 6.7.0 · fixed in 6.12.24; From 6.13.0 · fixed in 6.13.12; From 6.14.0 · fixed in 6.14.3

References 6

git.kernel.org