All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v5 0/2] btrfs: fix a UAF where btrfs_root::dirty_list is freed but still referred
@ 2026-10-11  8:21 Qu Wenruo
  2026-10-11  8:21 ` [PATCH v5 1/2] btrfs: prevent use-after-free in btrfs_transaction::switch_commits Qu Wenruo
  2026-10-11  8:21 ` [PATCH v5 2/2] btrfs: fix use-after-free on quota enable allocation failure Qu Wenruo
  0 siblings, 2 replies; 11+ messages in thread
From: Qu Wenruo @ 2026-10-11  8:21 UTC (permalink / raw)
  To: linux-btrfs

[CHANGELOG]
v5:
- Drop the first patch
  As we no longer put the list_del_init() call inside
  btrfs_put_root(), the existing code is already safe without the need
  for extra spinlock, as the existing callers are already holding a
  trans handle, thus won't race with transaction cleanup/committing.

- Also drop the spinlock from the 2nd patch
  As we are already safe without that lock.

- Update the commit message of the last commit
  As we no long hold trans_lock for every btrfs_root::dirty_list caller.

v4:
- Also cleanup qgroup swapped blocks and dirty_log_pages
  Which are only released during switch_commit_roots().

v3:
- Use Yalagada's v2 fix as the final UAF fix
  The delayed list_del_init() call inside btrfs_put_root() is not
  safe as another racing ioctl can grab the quota root, extending
  its lifespan.

v2:
- Add extra patches to address Sashiko's comment
  * Make all root->dirty_list users to hold trans_lock
  * Release root->dirty_list from cur_trans->switch_commits during
    transaction cleanup

The first patch is an existing bug exposed by Sashiko, which also
affects the last UAF fix.

The last one is the final UAF fix for the bug reported by syzbot.


Qu Wenruo (1):
  btrfs: prevent use-after-free in btrfs_transaction::switch_commits

Yalagada Pavan Kumar (1):
  btrfs: fix use-after-free on quota enable allocation failure

 fs/btrfs/disk-io.c | 10 ++++++++++
 fs/btrfs/qgroup.c  |  7 +++++++
 2 files changed, 17 insertions(+)

-- 
2.56.0


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2026-10-13  5:32 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-11  8:21 [PATCH v5 0/2] btrfs: fix a UAF where btrfs_root::dirty_list is freed but still referred Qu Wenruo
2026-10-11  8:21 ` [PATCH v5 1/2] btrfs: prevent use-after-free in btrfs_transaction::switch_commits Qu Wenruo
2026-10-12 10:41   ` Filipe Manana
2026-10-12 21:13     ` Qu Wenruo
2026-10-12 22:11       ` Qu Wenruo
2026-10-11  8:21 ` [PATCH v5 2/2] btrfs: fix use-after-free on quota enable allocation failure Qu Wenruo
2026-10-12 10:47   ` Filipe Manana
2026-10-12 15:46   ` Daniel Vacek
2026-10-12 17:19     ` Filipe Manana
2026-10-13  5:32       ` Daniel Vacek
2026-10-12 21:17     ` Qu Wenruo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.