syzbot


KASAN: use-after-free Read in bch2_extent_ptr_to_text

Status: upstream: reported C repro on 2025/09/29 19:45
Subsystems: bcachefs
[Documentation on labels]
Reported-by: syzbot+564efbe31172fe908429@syzkaller.appspotmail.com
First crash: 49d, last: 35d
Cause bisection: introduced by (bisect log) :
commit d97de0d017cde0d442c3d144b4f969f43064cc0f
Author: Kent Overstreet <kent.overstreet@linux.dev>
Date: Tue Aug 13 01:31:25 2024 +0000

  bcachefs: Make bkey_fsck_err() a wrapper around fsck_err()

Crash: KASAN: use-after-free Read in bch2_extent_ptr_to_text (log)
Repro: C syz .config
  
Discussions (5)
Title Replies (including bot) Last reply
Re: [PATCH] bcachefs:fix use-after-free in __bch2_bkey_fsck_err 1 (1) 2025/10/15 08:20
Re: [PATCH] bcachefs:fix use-after-free in __bch2_bkey_fsck_err 1 (1) 2025/10/05 18:05
[PATCH] bcachefs:fix use-after-free in __bch2_bkey_fsck_err 1 (1) 2025/10/05 16:05
[PATCH] bcachefs:fix use-after-free in __bch2_bkey_fsck_err 1 (1) 2025/10/05 04:39
[syzbot] [bcachefs?] KASAN: use-after-free Read in bch2_extent_ptr_to_text 0 (1) 2025/09/29 19:45
Last patch testing requests (3)
Created Duration User Patch Repo Result
2025/10/28 05:30 24m retest repro upstream OK log
2025/10/13 04:18 23m retest repro git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci report log
2025/10/13 04:18 24m retest repro git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci report log

Sample crash report:
bcachefs (loop0): invalid bkey in superblock btree=extents level=1: u64s 11 type btree_ptr_v2 SPOS_MAX len 0 ver 0: seq c6c25c03258c59c5 written 16 min_key POS_MIN durability: 1 ptr: 0:27:0 gen 0
  pointer before first bucket (27 < 1024), deleting
==================================================================
BUG: KASAN: use-after-free in bucket_gen_get_rcu fs/bcachefs/buckets.h:82 [inline]
BUG: KASAN: use-after-free in dev_ptr_stale_rcu fs/bcachefs/buckets.h:147 [inline]
BUG: KASAN: use-after-free in bch2_extent_ptr_to_text+0x76c/0x770 fs/bcachefs/extents.c:1247
Read of size 1 at addr ffff000152fd1a4e by task syz.0.17/6706

CPU: 1 UID: 0 PID: 6706 Comm: syz.0.17 Not tainted syzkaller #0 PREEMPT 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 06/30/2025
Call trace:
 show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:499 (C)
 __dump_stack+0x30/0x40 lib/dump_stack.c:94
 dump_stack_lvl+0xd8/0x12c lib/dump_stack.c:120
 print_address_description+0xa8/0x238 mm/kasan/report.c:378
 print_report+0x68/0x84 mm/kasan/report.c:482
 kasan_report+0xb0/0x110 mm/kasan/report.c:595
 __asan_report_load1_noabort+0x20/0x2c mm/kasan/report_generic.c:378
 bucket_gen_get_rcu fs/bcachefs/buckets.h:82 [inline]
 dev_ptr_stale_rcu fs/bcachefs/buckets.h:147 [inline]
 bch2_extent_ptr_to_text+0x76c/0x770 fs/bcachefs/extents.c:1247
 bch2_bkey_ptrs_to_text+0xcb0/0x13f0 fs/bcachefs/extents.c:1335
 bch2_btree_ptr_v2_to_text+0x198/0x238 fs/bcachefs/extents.c:362
 bch2_val_to_text fs/bcachefs/bkey_methods.c:321 [inline]
 bch2_bkey_val_to_text+0xf0/0x140 fs/bcachefs/bkey_methods.c:331
 __bch2_bkey_fsck_err+0x338/0x4a0 fs/bcachefs/error.c:691
 extent_ptr_validate fs/bcachefs/extents.c:1400 [inline]
 bch2_bkey_ptrs_validate+0x15d0/0x1790 fs/bcachefs/extents.c:1442
 bch2_btree_ptr_v2_validate+0x318/0x5f0 fs/bcachefs/extents.c:345
 bch2_bkey_val_validate fs/bcachefs/bkey_methods.c:143 [inline]
 bch2_bkey_validate+0x1c8/0x2c8 fs/bcachefs/bkey_methods.c:251
 journal_validate_key+0x540/0xc0c fs/bcachefs/journal_io.c:388
 journal_entry_btree_root_validate+0x184/0x4a0 fs/bcachefs/journal_io.c:480
 bch2_journal_entry_validate+0x114/0x188 fs/bcachefs/journal_io.c:874
 bch2_sb_clean_validate_late+0x1c4/0x370 fs/bcachefs/sb-clean.c:44
 bch2_read_superblock_clean+0xbc/0x238 fs/bcachefs/sb-clean.c:172
 bch2_fs_recovery+0x134/0x2fb4 fs/bcachefs/recovery.c:738
 bch2_fs_start+0x940/0xbec fs/bcachefs/super.c:1213
 bch2_fs_get_tree+0x880/0x107c fs/bcachefs/fs.c:2488
 vfs_get_tree+0x90/0x28c fs/super.c:1815
 do_new_mount+0x278/0x7f4 fs/namespace.c:3808
 path_mount+0x5b4/0xde0 fs/namespace.c:4123
 do_mount fs/namespace.c:4136 [inline]
 __do_sys_mount fs/namespace.c:4347 [inline]
 __se_sys_mount fs/namespace.c:4324 [inline]
 __arm64_sys_mount+0x3e8/0x468 fs/namespace.c:4324
 __invoke_syscall arch/arm64/kernel/syscall.c:35 [inline]
 invoke_syscall+0x98/0x254 arch/arm64/kernel/syscall.c:49
 el0_svc_common+0x130/0x23c arch/arm64/kernel/syscall.c:132
 do_el0_svc+0x48/0x58 arch/arm64/kernel/syscall.c:151
 el0_svc+0x5c/0x254 arch/arm64/kernel/entry-common.c:744
 el0t_64_sync_handler+0x84/0x12c arch/arm64/kernel/entry-common.c:763
 el0t_64_sync+0x198/0x19c arch/arm64/kernel/entry.S:596

The buggy address belongs to the physical page:
page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x192fd1
flags: 0x5ffc00000000000(node=0|zone=2|lastcpupid=0x7ff)
raw: 05ffc00000000000 fffffdffc54bf448 fffffdffc54bf448 0000000000000000
raw: 0000000000000000 0000000000000000 00000000ffffffff 0000000000000000
page dumped because: kasan: bad access detected

Memory state around the buggy address:
 ffff000152fd1900: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 ffff000152fd1980: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>ffff000152fd1a00: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
                                              ^
 ffff000152fd1a80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 ffff000152fd1b00: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
==================================================================
bcachefs (loop0): invalid bkey in superblock btree=inodes level=1: u64s 11 type btree_ptr_v2 SPOS_MAX len 0 ver 0: seq 7589ab5e0c11cc7a written 24 min_key POS_MIN durability: 1 ptr: 0:1879048230:0 gen 0
  pointer past last bucket (1879048230 > 128), deleting
bcachefs (loop0): invalid journal entry, version=1.7: mi_btree_bitmap type=btree_root in superblock: invalid btree root journal entry: wrong number of keys, shutting down
  error not marked as autofix and not in fsck
  run fsck, and forward to devs so error can be marked for self-healing
  emergency read only at seq 0
bcachefs (loop0): error in recovery: fsck_errors_not_fixed
bcachefs (loop0): bch2_fs_start(): error starting filesystem fsck_errors_not_fixed
bcachefs (loop0): shutting down
bcachefs (loop0): shutdown complete
bcachefs: bch2_fs_get_tree() error: fsck_errors_not_fixed

Crashes (4):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/09/28 14:05 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 2213e57a69f0 001c9061 .config console log report syz / log C [disk image] [vmlinux] [kernel image] [mounted in repro] ci-upstream-gce-arm64 KASAN: use-after-free Read in bch2_extent_ptr_to_text
2025/09/28 13:47 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 2213e57a69f0 001c9061 .config console log report syz / log C [disk image] [vmlinux] [kernel image] [mounted in repro] ci-upstream-gce-arm64 KASAN: use-after-free Read in bch2_extent_ptr_to_text
2025/09/29 02:18 upstream 8f9736633f8c 001c9061 .config console log report syz / log C [disk image] [vmlinux] [kernel image] [mounted in repro] ci2-upstream-fs KASAN: use-after-free Read in bch2_extent_ptr_to_text
2025/09/28 13:29 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 2213e57a69f0 001c9061 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 KASAN: use-after-free Read in bch2_extent_ptr_to_text
* Struck through repros no longer work on HEAD.