syzbot


KASAN: out-of-bounds Read in leaf_cut_from_buffer

Status: upstream: reported on 2024/11/05 08:50
Reported-by: syzbot+0c3ce62df39470eec221@syzkaller.appspotmail.com
First crash: 46d, last: 46d

Sample crash report:
REISERFS warning (device loop2): vs-13060 reiserfs_update_sd_size: stat data of object [2 5 0x0 SD] (nlink == 1) not found (pos 1)
==================================================================
BUG: KASAN: out-of-bounds in leaf_cut_from_buffer+0xbf0/0x184c fs/reiserfs/lbalance.c:1210
Read of size 18446744073709547852 at addr ffff0000eaa44000 by task syz.2.84/4419

CPU: 0 PID: 4419 Comm: syz.2.84 Not tainted 5.15.170-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024
Call trace:
 dump_backtrace+0x0/0x530 arch/arm64/kernel/stacktrace.c:152
 show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:216
 __dump_stack lib/dump_stack.c:88 [inline]
 dump_stack_lvl+0x108/0x170 lib/dump_stack.c:106
 print_address_description+0x7c/0x3f0 mm/kasan/report.c:248
 __kasan_report mm/kasan/report.c:434 [inline]
 kasan_report+0x174/0x1e4 mm/kasan/report.c:451
 kasan_check_range+0x274/0x2b4 mm/kasan/generic.c:189
 memmove+0x90/0xe8 mm/kasan/shadow.c:54
 leaf_cut_from_buffer+0xbf0/0x184c fs/reiserfs/lbalance.c:1210
 leaf_delete_items+0x2c0/0x3e0
 leaf_move_items+0x14e0/0x1f7c fs/reiserfs/lbalance.c:729
 leaf_shift_right+0x3c/0xec fs/reiserfs/lbalance.c:803
 balance_leaf_paste_right_shift fs/reiserfs/do_balan.c:789 [inline]
 balance_leaf_paste_right fs/reiserfs/do_balan.c:897 [inline]
 balance_leaf_right fs/reiserfs/do_balan.c:916 [inline]
 balance_leaf+0x436c/0xe860 fs/reiserfs/do_balan.c:1415
 do_balance+0x27c/0x790 fs/reiserfs/do_balan.c:1888
 reiserfs_paste_into_item+0x630/0x744 fs/reiserfs/stree.c:2159
 reiserfs_get_block+0x1820/0x3fd0 fs/reiserfs/inode.c:1077
 __block_write_begin_int+0x3ec/0x1608 fs/buffer.c:2012
 __block_write_begin+0x40/0x54 fs/buffer.c:2062
 reiserfs_write_begin+0x3c8/0x654 fs/reiserfs/inode.c:2790
 generic_perform_write+0x24c/0x520 mm/filemap.c:3785
 __generic_file_write_iter+0x230/0x454 mm/filemap.c:3912
 generic_file_write_iter+0xb4/0x1b8 mm/filemap.c:3944
 call_write_iter include/linux/fs.h:2174 [inline]
 new_sync_write fs/read_write.c:507 [inline]
 vfs_write+0x884/0xb44 fs/read_write.c:594
 ksys_pwrite64 fs/read_write.c:701 [inline]
 __do_sys_pwrite64 fs/read_write.c:711 [inline]
 __se_sys_pwrite64 fs/read_write.c:708 [inline]
 __arm64_sys_pwrite64+0x188/0x220 fs/read_write.c:708
 __invoke_syscall arch/arm64/kernel/syscall.c:38 [inline]
 invoke_syscall+0x98/0x2b8 arch/arm64/kernel/syscall.c:52
 el0_svc_common+0x138/0x258 arch/arm64/kernel/syscall.c:142
 do_el0_svc+0x58/0x14c arch/arm64/kernel/syscall.c:181
 el0_svc+0x7c/0x1f0 arch/arm64/kernel/entry-common.c:608
 el0t_64_sync_handler+0x84/0xe4 arch/arm64/kernel/entry-common.c:626
 el0t_64_sync+0x1a0/0x1a4 arch/arm64/kernel/entry.S:584

The buggy address belongs to the page:
page:00000000067acbb3 refcount:2 mapcount:0 mapping:00000000e5073ef5 index:0x21a pfn:0x12aa44
memcg:ffff0000d313c000
aops:def_blk_aops ino:700002
flags: 0x5ffc00000002030(lru|active|private|node=0|zone=2|lastcpupid=0x7ff)
raw: 05ffc00000002030 fffffc0003aa90c8 fffffc00037530c8 ffff0000c51e66c8
raw: 000000000000021a ffff0000cf4f8570 00000002ffffffff ffff0000d313c000
page dumped because: kasan: bad access detected

Memory state around the buggy address:
 ffff0000eaa43f00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 ffff0000eaa43f80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>ffff0000eaa44000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
                   ^
 ffff0000eaa44080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 ffff0000eaa44100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
==================================================================

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2024/11/05 08:49 linux-5.15.y 72244eab0dad 509da429 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 KASAN: out-of-bounds Read in leaf_cut_from_buffer
* Struck through repros no longer work on HEAD.