KASAN: use-after-free Read in trace_event_raw_event_btrfs_delayed_tree_ref

Status: upstream: reported on 2026/08/10 21:00
Reported-by: syzbot+350163b09a8b92afc566@syzkaller.appspotmail.com
First crash: 68d, last: 54d

Sample crash report:
==================================================================
BUG: KASAN: use-after-free in do_trace_event_raw_event_btrfs_delayed_tree_ref include/trace/events/btrfs.h:865 [inline]
BUG: KASAN: use-after-free in trace_event_raw_event_btrfs_delayed_tree_ref+0x168/0x3f4 include/trace/events/btrfs.h:844
Read of size 8 at addr ffff0000cacf1418 by task syz.4.315/5276

CPU: 0 PID: 5276 Comm: syz.4.315 Not tainted syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/07/2026
Call trace:
 dump_backtrace+0x1c4/0x1f0 arch/arm64/kernel/stacktrace.c:158
 show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:165
 __dump_stack+0x30/0x40 lib/dump_stack.c:88
 dump_stack_lvl+0xf4/0x15c lib/dump_stack.c:106
 print_address_description+0x88/0x218 mm/kasan/report.c:316
 print_report+0x50/0x68 mm/kasan/report.c:420
 kasan_report+0xa8/0xfc mm/kasan/report.c:524
 __asan_report_load8_noabort+0x2c/0x38 mm/kasan/report_generic.c:351
 do_trace_event_raw_event_btrfs_delayed_tree_ref include/trace/events/btrfs.h:865 [inline]
 trace_event_raw_event_btrfs_delayed_tree_ref+0x168/0x3f4 include/trace/events/btrfs.h:844
 __traceiter_add_delayed_tree_ref+0x90/0xe8 include/trace/events/btrfs.h:887
 trace_add_delayed_tree_ref include/trace/events/btrfs.h:887 [inline]
 btrfs_add_delayed_tree_ref+0xc38/0xd28 fs/btrfs/delayed-ref.c:982
 btrfs_free_tree_block+0x268/0xa38 fs/btrfs/extent-tree.c:3299
 btrfs_force_cow_block+0xc38/0x18c0 fs/btrfs/ctree.c:505
 btrfs_cow_block+0x2e0/0x71c fs/btrfs/ctree.c:623
 btrfs_search_slot+0xa48/0x2380 fs/btrfs/ctree.c:-1
 btrfs_insert_empty_items+0xa4/0x180 fs/btrfs/ctree.c:4185
 btrfs_insert_empty_item fs/btrfs/ctree.h:3073 [inline]
 insert_with_overflow+0xf8/0x2fc fs/btrfs/dir-item.c:32
 btrfs_insert_dir_item+0x19c/0x4a8 fs/btrfs/dir-item.c:132
 btrfs_add_link+0x1d8/0xa40 fs/btrfs/inode.c:6790
 btrfs_create_new_inode+0x1464/0x20f8 fs/btrfs/inode.c:6731
 create_subvol+0xb0c/0x11d0 fs/btrfs/ioctl.c:741
 btrfs_mksubvol+0x574/0x6bc fs/btrfs/ioctl.c:1017
 __btrfs_ioctl_snap_create+0x1ac/0x3f4 fs/btrfs/ioctl.c:2194
 btrfs_ioctl_snap_create+0x130/0x17c fs/btrfs/ioctl.c:2252
 btrfs_ioctl+0x9fc/0xb38 fs/btrfs/ioctl.c:-1
 vfs_ioctl fs/ioctl.c:51 [inline]
 __do_sys_ioctl fs/ioctl.c:870 [inline]
 __se_sys_ioctl fs/ioctl.c:856 [inline]
 __arm64_sys_ioctl+0x14c/0x1c8 fs/ioctl.c:856
 __invoke_syscall arch/arm64/kernel/syscall.c:38 [inline]
 invoke_syscall+0x98/0x290 arch/arm64/kernel/syscall.c:52
 el0_svc_common+0x200/0x258 arch/arm64/kernel/syscall.c:140
 do_el0_svc+0x5c/0x134 arch/arm64/kernel/syscall.c:204
 el0_svc+0x58/0x128 arch/arm64/kernel/entry-common.c:637
 el0t_64_sync_handler+0x84/0xf0 arch/arm64/kernel/entry-common.c:655
 el0t_64_sync+0x18c/0x190 arch/arm64/kernel/entry.S:585

Allocated by task 5276:
 kasan_save_stack mm/kasan/common.c:46 [inline]
 kasan_set_track+0x4c/0x80 mm/kasan/common.c:53
 kasan_save_alloc_info+0x24/0x30 mm/kasan/generic.c:505
 __kasan_slab_alloc+0x70/0x88 mm/kasan/common.c:329
 kasan_slab_alloc include/linux/kasan.h:201 [inline]
 slab_post_alloc_hook+0x74/0x430 mm/slab.h:737
 slab_alloc_node mm/slub.c:3359 [inline]
 slab_alloc mm/slub.c:3367 [inline]
 __kmem_cache_alloc_lru mm/slub.c:3374 [inline]
 kmem_cache_alloc+0x234/0x310 mm/slub.c:3383
 btrfs_add_delayed_tree_ref+0x160/0xd28 fs/btrfs/delayed-ref.c:926
 btrfs_free_tree_block+0x268/0xa38 fs/btrfs/extent-tree.c:3299
 btrfs_force_cow_block+0xc38/0x18c0 fs/btrfs/ctree.c:505
 btrfs_cow_block+0x2e0/0x71c fs/btrfs/ctree.c:623
 btrfs_search_slot+0xa48/0x2380 fs/btrfs/ctree.c:-1
 btrfs_insert_empty_items+0xa4/0x180 fs/btrfs/ctree.c:4185
 btrfs_insert_empty_item fs/btrfs/ctree.h:3073 [inline]
 insert_with_overflow+0xf8/0x2fc fs/btrfs/dir-item.c:32
 btrfs_insert_dir_item+0x19c/0x4a8 fs/btrfs/dir-item.c:132
 btrfs_add_link+0x1d8/0xa40 fs/btrfs/inode.c:6790
 btrfs_create_new_inode+0x1464/0x20f8 fs/btrfs/inode.c:6731
 create_subvol+0xb0c/0x11d0 fs/btrfs/ioctl.c:741
 btrfs_mksubvol+0x574/0x6bc fs/btrfs/ioctl.c:1017
 __btrfs_ioctl_snap_create+0x1ac/0x3f4 fs/btrfs/ioctl.c:2194
 btrfs_ioctl_snap_create+0x130/0x17c fs/btrfs/ioctl.c:2252
 btrfs_ioctl+0x9fc/0xb38 fs/btrfs/ioctl.c:-1
 vfs_ioctl fs/ioctl.c:51 [inline]
 __do_sys_ioctl fs/ioctl.c:870 [inline]
 __se_sys_ioctl fs/ioctl.c:856 [inline]
 __arm64_sys_ioctl+0x14c/0x1c8 fs/ioctl.c:856
 __invoke_syscall arch/arm64/kernel/syscall.c:38 [inline]
 invoke_syscall+0x98/0x290 arch/arm64/kernel/syscall.c:52
 el0_svc_common+0x200/0x258 arch/arm64/kernel/syscall.c:140
 do_el0_svc+0x5c/0x134 arch/arm64/kernel/syscall.c:204
 el0_svc+0x58/0x128 arch/arm64/kernel/entry-common.c:637
 el0t_64_sync_handler+0x84/0xf0 arch/arm64/kernel/entry-common.c:655
 el0t_64_sync+0x18c/0x190 arch/arm64/kernel/entry.S:585

Freed by task 39:
 kasan_save_stack mm/kasan/common.c:46 [inline]
 kasan_set_track+0x4c/0x80 mm/kasan/common.c:53
 kasan_save_free_info+0x38/0x5c mm/kasan/generic.c:516
 ____kasan_slab_free+0x148/0x1b0 mm/kasan/common.c:237
 __kasan_slab_free+0x18/0x28 mm/kasan/common.c:245
 kasan_slab_free include/linux/kasan.h:177 [inline]
 slab_free_hook mm/slub.c:1729 [inline]
 slab_free_freelist_hook+0x16c/0x1e8 mm/slub.c:1755
 slab_free mm/slub.c:3687 [inline]
 kmem_cache_free+0x118/0x318 mm/slub.c:3709
 btrfs_put_delayed_ref+0x18c/0x250 fs/btrfs/delayed-ref.h:-1
 btrfs_run_delayed_refs_for_head fs/btrfs/extent-tree.c:1979 [inline]
 __btrfs_run_delayed_refs+0x1400/0x3374 fs/btrfs/extent-tree.c:2033
 btrfs_run_delayed_refs+0x11c/0x474 fs/btrfs/extent-tree.c:2164
 btrfs_commit_transaction+0x1e4/0x28e4 fs/btrfs/transaction.c:2191
 btrfs_qgroup_rescan_worker+0x14cc/0x156c fs/btrfs/qgroup.c:3423
 btrfs_work_helper+0x328/0xcbc fs/btrfs/async-thread.c:280
 process_one_work+0x7e4/0x13bc kernel/workqueue.c:2292
 worker_thread+0x8cc/0xfe8 kernel/workqueue.c:2439
 kthread+0x254/0x2e0 kernel/kthread.c:376
 ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:850

The buggy address belongs to the object at ffff0000cacf13f0
 which belongs to the cache btrfs_delayed_tree_ref of size 104
The buggy address is located 40 bytes inside of
 104-byte region [ffff0000cacf13f0, ffff0000cacf1458)

The buggy address belongs to the physical page:
page:000000004ae63c5a refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x10acf1
flags: 0x5ffc00000000200(slab|node=0|zone=2|lastcpupid=0x7ff)
raw: 05ffc00000000200 0000000000000000 dead000000000122 ffff0000d6b3b200
raw: 0000000000000000 0000000080180018 00000001ffffffff 0000000000000000
page dumped because: kasan: bad access detected

Memory state around the buggy address:
 ffff0000cacf1300: fb fc fc fc fc fc fc fc fc fa fb fb fb fb fb fb
 ffff0000cacf1380: fb fb fb fb fb fb fc fc fc fc fc fc fc fc fa fb
>ffff0000cacf1400: fb fb fb fb fb fb fb fb fb fb fb fc fc fc fc fc
                            ^
 ffff0000cacf1480: fc fc fc fa fb fb fb fb fb fb fb fb fb fb fb fb
 ffff0000cacf1500: fc fc fc fc fc fc fc fc fa fb fb fb fb fb fb fb
==================================================================

Crashes (2):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2026/08/24 13:27 linux-6.1.y 05208478041c b55bd4c3 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan-arm64 KASAN: use-after-free Read in trace_event_raw_event_btrfs_delayed_tree_ref
2026/08/10 20:59 linux-6.1.y e4f7d8be268e 508909ea .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan-arm64 KASAN: use-after-free Read in trace_event_raw_event_btrfs_delayed_tree_ref
* Struck through repros no longer work on HEAD.