syzbot


UBSAN: shift-out-of-bounds in bch2_sb_dev_has_data

Status: fixed on 2024/06/11 03:41
Subsystems: bcachefs
[Documentation on labels]
Reported-by: syzbot+249018ea545364f78d04@syzkaller.appspotmail.com
Fix commit: bcfbaea8e547 bcachefs: Fix shift overflows in replicas.c
First crash: 37d, last: 37d
Cause bisection: introduced by (bisect log) :
commit 03ef80b469d5d83530ce1ce15be78a40e5300f9b
Author: Kent Overstreet <kent.overstreet@linux.dev>
Date: Sat Sep 23 22:41:51 2023 +0000

  bcachefs: Ignore unknown mount options

Crash: UBSAN: shift-out-of-bounds in bch2_sb_dev_has_data (log)
Repro: C syz .config
  
Discussions (3)
Title Replies (including bot) Last reply
[PATCH] guard against unknown r->data_type in bch2_sb_dev_has_data() 2 (2) 2024/05/19 23:48
Re: [syzbot] [PATCH] guard against unknown r->data_type in bch2_sb_dev_has_data() 0 (1) 2024/05/15 01:26
[syzbot] [bcachefs?] UBSAN: shift-out-of-bounds in bch2_sb_dev_has_data 0 (1) 2024/05/14 09:33
Last patch testing requests (1)
Created Duration User Patch Repo Result
2024/05/15 01:26 18m cam.alvarez.i@gmail.com patch upstream OK log

Sample crash report:
loop0: detected capacity change from 0 to 32768
------------[ cut here ]------------
UBSAN: shift-out-of-bounds in fs/bcachefs/replicas.c:1010:20
shift exponent 155 is too large for 32-bit type 'int'
CPU: 0 PID: 5075 Comm: syz-executor397 Not tainted 6.9.0-rc7-syzkaller-00183-gcf87f46fd34d #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/02/2024
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:88 [inline]
 dump_stack_lvl+0x241/0x360 lib/dump_stack.c:114
 ubsan_epilogue lib/ubsan.c:231 [inline]
 __ubsan_handle_shift_out_of_bounds+0x3c8/0x420 lib/ubsan.c:468
 bch2_sb_dev_has_data+0x22a/0x5f0 fs/bcachefs/replicas.c:1010
 member_to_text+0xcb/0x1030 fs/bcachefs/sb-members.c:163
 bch2_sb_members_v1_to_text+0x1aa/0x2f0 fs/bcachefs/sb-members.c:317
 bch2_sb_field_validate+0x1f7/0x2d0 fs/bcachefs/super-io.c:1228
 bch2_sb_validate+0x9b6/0xe10 fs/bcachefs/super-io.c:460
 __bch2_read_super+0xc9a/0x1460 fs/bcachefs/super-io.c:822
 bch2_fs_open+0x246/0xdf0 fs/bcachefs/super.c:2052
 bch2_mount+0x71d/0x1320 fs/bcachefs/fs.c:1903
 legacy_get_tree+0xee/0x190 fs/fs_context.c:662
 vfs_get_tree+0x90/0x2a0 fs/super.c:1779
 do_new_mount+0x2be/0xb40 fs/namespace.c:3352
 do_mount fs/namespace.c:3692 [inline]
 __do_sys_mount fs/namespace.c:3898 [inline]
 __se_sys_mount+0x2d9/0x3c0 fs/namespace.c:3875
 do_syscall_x64 arch/x86/entry/common.c:52 [inline]
 do_syscall_64+0xf5/0x240 arch/x86/entry/common.c:83
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f16b990d8ba
Code: d8 64 89 02 48 c7 c0 ff ff ff ff eb a6 e8 5e 04 00 00 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 49 89 ca b8 a5 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ffdd930ef68 EFLAGS: 00000282 ORIG_RAX: 00000000000000a5
RAX: ffffffffffffffda RBX: 00007ffdd930ef80 RCX: 00007f16b990d8ba
RDX: 0000000020011a00 RSI: 0000000020011a40 RDI: 00007ffdd930ef80
RBP: 0000000000000004 R08: 00007ffdd930efc0 R09: 00000000000119f3
R10: 0000000001200014 R11: 0000000000000282 R12: 0000000001200014
R13: 00007ffdd930efc0 R14: 0000000000000003 R15: 0000000001000000
 </TASK>
---[ end trace ]---

Crashes (15):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2024/05/12 07:09 upstream cf87f46fd34d 9026e142 .config strace log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci2-upstream-fs UBSAN: shift-out-of-bounds in bch2_sb_dev_has_data
2024/05/12 05:28 upstream cf87f46fd34d 9026e142 .config strace log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci2-upstream-fs UBSAN: shift-out-of-bounds in bch2_sb_dev_has_data
2024/05/12 05:08 upstream cf87f46fd34d 9026e142 .config strace log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci2-upstream-fs UBSAN: shift-out-of-bounds in bch2_sb_dev_has_data
2024/05/12 04:30 upstream cf87f46fd34d 9026e142 .config strace log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci-upstream-kasan-gce-selinux-root UBSAN: shift-out-of-bounds in bch2_sb_dev_has_data
2024/05/12 04:22 upstream cf87f46fd34d 9026e142 .config strace log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci2-upstream-fs UBSAN: shift-out-of-bounds in bch2_sb_dev_has_data
2024/05/12 04:16 upstream cf87f46fd34d 9026e142 .config console log report syz C [disk image (non-bootable)] [vmlinux] [kernel image] [mounted in repro] ci-qemu-upstream UBSAN: shift-out-of-bounds in bch2_sb_dev_has_data
2024/05/12 04:22 linux-next 75fa778d74b7 9026e142 .config strace log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci-upstream-linux-next-kasan-gce-root UBSAN: shift-out-of-bounds in bch2_sb_dev_has_data
2024/05/12 04:16 upstream cf87f46fd34d 9026e142 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-badwrites-root UBSAN: shift-out-of-bounds in bch2_sb_dev_has_data
2024/05/12 04:10 upstream cf87f46fd34d 9026e142 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-selinux-root UBSAN: shift-out-of-bounds in bch2_sb_dev_has_data
2024/05/12 04:10 upstream cf87f46fd34d 9026e142 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-smack-root UBSAN: shift-out-of-bounds in bch2_sb_dev_has_data
2024/05/12 04:07 upstream cf87f46fd34d 9026e142 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs UBSAN: shift-out-of-bounds in bch2_sb_dev_has_data
2024/05/12 04:09 upstream cf87f46fd34d 9026e142 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream UBSAN: shift-out-of-bounds in bch2_sb_dev_has_data
2024/05/12 04:12 upstream cf87f46fd34d 9026e142 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 UBSAN: shift-out-of-bounds in bch2_sb_dev_has_data
2024/05/12 04:07 linux-next 75fa778d74b7 9026e142 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root UBSAN: shift-out-of-bounds in bch2_sb_dev_has_data
2024/05/12 04:10 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci fda5695d692c 9026e142 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 UBSAN: shift-out-of-bounds in bch2_sb_dev_has_data
* Struck through repros no longer work on HEAD.