syzbot


KASAN: out-of-bounds Write in alloc_journal_list

Status: auto-obsoleted due to no activity on 2024/02/25 18:49
Subsystems: reiserfs
[Documentation on labels]
Reported-by: syzbot+2f21ceeca11b2383fe96@syzkaller.appspotmail.com
First crash: 91d, last: 91d

Sample crash report:
REISERFS (device loop1): journal params: device loop1, size 512, journal first block 18, max trans len 256, max batch 225, max commit age 30, max trans age 30
==================================================================
BUG: KASAN: out-of-bounds in stack_trace_consume_entry+0x141/0x160 kernel/stacktrace.c:93
Write of size 8 at addr ffffc90026ce7728 by task syz-executor.1/7380

CPU: 0 PID: 7380 Comm: syz-executor.1 Not tainted 6.7.0-rc3-syzkaller #0
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.2-debian-1.16.2-1 04/01/2014
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:88 [inline]
 dump_stack_lvl+0xd9/0x1b0 lib/dump_stack.c:106
 print_address_description mm/kasan/report.c:364 [inline]
 print_report+0xc4/0x620 mm/kasan/report.c:475
 kasan_report+0xda/0x110 mm/kasan/report.c:588
 stack_trace_consume_entry+0x141/0x160 kernel/stacktrace.c:93
 arch_stack_walk+0xde/0x170 arch/x86/kernel/stacktrace.c:27
 stack_trace_save+0x96/0xd0 kernel/stacktrace.c:122
 kasan_save_stack+0x33/0x50 mm/kasan/common.c:45
 kasan_set_track+0x25/0x30 mm/kasan/common.c:52
 ____kasan_kmalloc mm/kasan/common.c:374 [inline]
 __kasan_kmalloc+0xa3/0xb0 mm/kasan/common.c:383
 kmalloc include/linux/slab.h:600 [inline]
 kzalloc include/linux/slab.h:721 [inline]
 alloc_journal_list+0x41/0x2e0 fs/reiserfs/journal.c:2572
 journal_list_init fs/reiserfs/journal.c:2586 [inline]
 journal_init+0x173e/0x6990 fs/reiserfs/journal.c:2841
 reiserfs_fill_super+0xcc6/0x3160 fs/reiserfs/super.c:2022
 mount_bdev+0x1f3/0x2e0 fs/super.c:1650
 legacy_get_tree+0x109/0x220 fs/fs_context.c:662
 vfs_get_tree+0x8c/0x370 fs/super.c:1771
 do_new_mount fs/namespace.c:3337 [inline]
 path_mount+0x1492/0x1ed0 fs/namespace.c:3664
 do_mount fs/namespace.c:3677 [inline]
 __do_sys_mount fs/namespace.c:3886 [inline]
 __se_sys_mount fs/namespace.c:3863 [inline]
 __x64_sys_mount+0x293/0x310 fs/namespace.c:3863
 do_syscall_x64 arch/x86/entry/common.c:51 [inline]
 do_syscall_64+0x40/0x110 arch/x86/entry/common.c:82
 entry_SYSCALL_64_after_hwframe+0x63/0x6b
RIP: 0033:0x7f3a5747e1ea
Code: d8 64 89 02 48 c7 c0 ff ff ff ff eb a6 e8 de 09 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 b0 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007f3a5814fee8 EFLAGS: 00000202
 ORIG_RAX: 00000000000000a5
RAX: ffffffffffffffda RBX: 00007f3a5814ff80 RCX: 00007f3a5747e1ea
RDX: 0000000020000080 RSI: 0000000020000040 RDI: 00007f3a5814ff40
RBP: 0000000020000080 R08: 00007f3a5814ff80 R09: 000000000000800c
R10: 000000000000800c R11: 0000000000000202 R12: 0000000020000040
R13: 00007f3a5814ff40 R14: 0000000000001115 R15: 0000000020000300
 </TASK>

The buggy address belongs to stack of task syz-executor.1/7380
 and is located at offset 240 in frame:
 stack_trace_save+0x0/0xd0 kernel/stacktrace.c:397

This frame has 1 object:
 [32, 56) 'c'

The buggy address belongs to the virtual mapping at
 [ffffc90026ce0000, ffffc90026ce9000) created by:
 kernel_clone+0xfd/0x930 kernel/fork.c:2907

The buggy address belongs to the physical page:
page:ffffea00041a6fc0 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x1069bf
memcg:ffff888027993c02
flags: 0x57ff00000000000(node=1|zone=2|lastcpupid=0x7ff)
page_type: 0xffffffff()
raw: 057ff00000000000 0000000000000000 dead000000000122 0000000000000000
raw: 0000000000000000 0000000000000000 00000001ffffffff ffff888027993c02
page dumped because: kasan: bad access detected
page_owner tracks the page as allocated
page last allocated via order 0, migratetype Unmovable, gfp_mask 0x102dc2(GFP_HIGHUSER|__GFP_NOWARN|__GFP_ZERO), pid 7379, tgid 7379 (syz-executor.1), ts 597681393102, free_ts 585046364367
 set_page_owner include/linux/page_owner.h:31 [inline]
 post_alloc_hook+0x2d0/0x350 mm/page_alloc.c:1537
 prep_new_page mm/page_alloc.c:1544 [inline]
 get_page_from_freelist+0xa25/0x36d0 mm/page_alloc.c:3312
 __alloc_pages+0x22e/0x2420 mm/page_alloc.c:4568
 alloc_pages_mpol+0x258/0x5f0 mm/mempolicy.c:2133
 vm_area_alloc_pages mm/vmalloc.c:3063 [inline]
 __vmalloc_area_node mm/vmalloc.c:3139 [inline]
 __vmalloc_node_range+0xa6e/0x1540 mm/vmalloc.c:3320
 alloc_thread_stack_node kernel/fork.c:309 [inline]
 dup_task_struct kernel/fork.c:1118 [inline]
 copy_process+0x138b/0x73f0 kernel/fork.c:2332
 kernel_clone+0xfd/0x930 kernel/fork.c:2907
 __do_sys_clone3+0x1f1/0x260 kernel/fork.c:3208
 do_syscall_x64 arch/x86/entry/common.c:51 [inline]
 do_syscall_64+0x40/0x110 arch/x86/entry/common.c:82
 entry_SYSCALL_64_after_hwframe+0x63/0x6b
page last free stack trace:
 reset_page_owner include/linux/page_owner.h:24 [inline]
 free_pages_prepare mm/page_alloc.c:1137 [inline]
 free_unref_page_prepare+0x4fa/0xaa0 mm/page_alloc.c:2347
 free_unref_page+0x33/0x3b0 mm/page_alloc.c:2487
 vfree+0x181/0x7a0 mm/vmalloc.c:2842
 do_journal_release fs/reiserfs/journal.c:1959 [inline]
 journal_release+0x253/0x500 fs/reiserfs/journal.c:1970
 reiserfs_put_super+0xe9/0x5c0 fs/reiserfs/super.c:616
 generic_shutdown_super+0x161/0x3d0 fs/super.c:696
 kill_block_super+0x3b/0x90 fs/super.c:1667
 deactivate_locked_super+0xbc/0x1a0 fs/super.c:484
 deactivate_super+0xde/0x100 fs/super.c:517
 cleanup_mnt+0x222/0x450 fs/namespace.c:1256
 task_work_run+0x14d/0x240 kernel/task_work.c:180
 resume_user_mode_work include/linux/resume_user_mode.h:49 [inline]
 exit_to_user_mode_loop kernel/entry/common.c:171 [inline]
 exit_to_user_mode_prepare+0x217/0x240 kernel/entry/common.c:204
 __syscall_exit_to_user_mode_work kernel/entry/common.c:285 [inline]
 syscall_exit_to_user_mode+0x1e/0x60 kernel/entry/common.c:296
 do_syscall_64+0x4d/0x110 arch/x86/entry/common.c:88
 entry_SYSCALL_64_after_hwframe+0x63/0x6b

Memory state around the buggy address:
 ffffc90026ce7600: 00 00 00 00 00 00 00 f1 f1 f1 f1 00 00 00 f3 f3
 ffffc90026ce7680: f3 f3 f3 00 00 06 01 80 01 00 00 00 00 00 00 00
>ffffc90026ce7700: 00 00 00 00 00 06 00 00 00 00 00 00 00 00 00 00
                                  ^
 ffffc90026ce7780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 ffffc90026ce7800: 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
2023/11/27 18:48 upstream 2cc14f52aeb7 7ec6c044 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream KASAN: out-of-bounds Write in alloc_journal_list
* Struck through repros no longer work on HEAD.