syzbot


KASAN: use-after-free Read in _find_next_zero_bit

Status: upstream: reported C repro on 2025/09/06 16:34
Reported-by: syzbot+80597d1d598a86e89519@syzkaller.appspotmail.com
First crash: 22h59m, last: 20h15m

Sample crash report:
loop0: detected capacity change from 0 to 512
EXT2-fs (loop0): nobh option not supported
EXT2-fs (loop0): warning: mounting ext3 filesystem as ext2
==================================================================
BUG: KASAN: use-after-free in _find_next_zero_bit+0xc4/0x12c lib/find_bit.c:180
Read of size 8 at addr ffff0000ebc0c000 by task syz.0.20/4520

CPU: 1 PID: 4520 Comm: syz.0.20 Not tainted syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 06/30/2025
Call trace:
 dump_backtrace+0x1c8/0x1f4 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+0xf8/0x160 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/0x100 mm/kasan/report.c:524
 __asan_report_load8_noabort+0x2c/0x38 mm/kasan/report_generic.c:351
 _find_next_zero_bit+0xc4/0x12c lib/find_bit.c:180
 find_next_zero_bit include/linux/find.h:151 [inline]
 find_next_zero_bit_le include/linux/find.h:420 [inline]
 bitmap_search_next_usable_block fs/ext2/balloc.c:590 [inline]
 alloc_new_reservation fs/ext2/balloc.c:972 [inline]
 ext2_try_to_allocate_with_rsv+0xb48/0x1234 fs/ext2/balloc.c:1124
 ext2_new_blocks+0x614/0x1200 fs/ext2/balloc.c:1309
 ext2_alloc_blocks fs/ext2/inode.c:418 [inline]
 ext2_alloc_branch fs/ext2/inode.c:487 [inline]
 ext2_get_blocks+0xb00/0x1afc fs/ext2/inode.c:730
 ext2_get_block+0xc8/0x3f4 fs/ext2/inode.c:787
 __block_write_begin_int+0x34c/0x13b8 fs/buffer.c:1991
 __block_write_begin fs/buffer.c:2041 [inline]
 block_write_begin+0x98/0x11c fs/buffer.c:2102
 ext2_write_begin+0x44/0x88 fs/ext2/inode.c:903
 generic_perform_write+0x230/0x4b0 mm/filemap.c:3846
 __generic_file_write_iter+0x168/0x37c mm/filemap.c:3974
 generic_file_write_iter+0xb4/0x2b0 mm/filemap.c:4006
 ext2_file_write_iter+0xc4/0x404 fs/ext2/file.c:179
 call_write_iter include/linux/fs.h:2265 [inline]
 new_sync_write fs/read_write.c:491 [inline]
 vfs_write+0x5ac/0x7c4 fs/read_write.c:584
 ksys_write+0x120/0x210 fs/read_write.c:637
 __do_sys_write fs/read_write.c:649 [inline]
 __se_sys_write fs/read_write.c:646 [inline]
 __arm64_sys_write+0x7c/0x90 fs/read_write.c:646
 __invoke_syscall arch/arm64/kernel/syscall.c:38 [inline]
 invoke_syscall+0x98/0x2bc arch/arm64/kernel/syscall.c:52
 el0_svc_common+0x138/0x258 arch/arm64/kernel/syscall.c:140
 do_el0_svc+0x58/0x13c arch/arm64/kernel/syscall.c:204
 el0_svc+0x58/0x138 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

The buggy address belongs to the physical page:
page:000000008ba3fd28 refcount:0 mapcount:-128 mapping:0000000000000000 index:0x1 pfn:0x12bc0c
flags: 0x5ffc00000000000(node=0|zone=2|lastcpupid=0x7ff)
raw: 05ffc00000000000 fffffc0003af0a08 fffffc0003af1608 0000000000000000
raw: 0000000000000001 0000000000000001 00000000ffffff7f 0000000000000000
page dumped because: kasan: bad access detected

Memory state around the buggy address:
 ffff0000ebc0bf00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 ffff0000ebc0bf80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>ffff0000ebc0c000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
                   ^
 ffff0000ebc0c080: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 ffff0000ebc0c100: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
==================================================================

Crashes (4):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/09/06 19:17 linux-6.1.y 28c695c365e1 d291dd2d .config console log report syz / log C [disk image] [vmlinux] [kernel image] [mounted in repro #1 (corrupt fs)] [mounted in repro #2 (corrupt fs)] ci2-linux-6-1-kasan-arm64 KASAN: use-after-free Read in _find_next_zero_bit
2025/09/06 18:41 linux-6.1.y 28c695c365e1 d291dd2d .config console log report syz / log C [disk image] [vmlinux] [kernel image] [mounted in repro #1 (corrupt fs)] [mounted in repro #2 (corrupt fs)] ci2-linux-6-1-kasan-arm64 KASAN: use-after-free Read in _find_next_zero_bit
2025/09/06 18:08 linux-6.1.y 28c695c365e1 d291dd2d .config console log report syz / log C [disk image] [vmlinux] [kernel image] [mounted in repro #1 (corrupt fs)] [mounted in repro #2 (corrupt fs)] ci2-linux-6-1-kasan-arm64 KASAN: use-after-free Read in _find_next_zero_bit
2025/09/06 16:33 linux-6.1.y 28c695c365e1 d291dd2d .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan-arm64 KASAN: use-after-free Read in _find_next_zero_bit
* Struck through repros no longer work on HEAD.