================================================================== BUG: KASAN: slab-use-after-free in __mmap_complete mm/vma.c:2408 [inline] BUG: KASAN: slab-use-after-free in __mmap_region+0x1c38/0x202c mm/vma.c:2469 Read of size 8 at addr ff6000001eb055f0 by task syz.3.893/7513 CPU: 1 UID: 0 PID: 7513 Comm: syz.3.893 Not tainted 6.13.0-rc3-syzkaller-g6f6ecce59d99 #0 Hardware name: riscv-virtio,qemu (DT) Call Trace: [] dump_backtrace+0x2e/0x3c arch/riscv/kernel/stacktrace.c:132 [] show_stack+0x30/0x3c arch/riscv/kernel/stacktrace.c:138 [] __dump_stack lib/dump_stack.c:94 [inline] [] dump_stack_lvl+0x12e/0x1a6 lib/dump_stack.c:120 [] print_address_description mm/kasan/report.c:378 [inline] [] print_report+0x28e/0x5aa mm/kasan/report.c:489 [] kasan_report+0xec/0x118 mm/kasan/report.c:602 [] __asan_report_load8_noabort+0x12/0x1a mm/kasan/report_generic.c:381 [] __mmap_complete mm/vma.c:2408 [inline] [] __mmap_region+0x1c38/0x202c mm/vma.c:2469 [] mmap_region+0x1b0/0x218 mm/mmap.c:1348 [] do_mmap+0xaa8/0xe00 mm/mmap.c:496 [] vm_mmap_pgoff+0x1a0/0x312 mm/util.c:580 [] ksys_mmap_pgoff+0x2c8/0x6f8 mm/mmap.c:542 [] riscv_sys_mmap arch/riscv/kernel/sys_riscv.c:19 [inline] [] __do_sys_mmap arch/riscv/kernel/sys_riscv.c:28 [inline] [] __se_sys_mmap arch/riscv/kernel/sys_riscv.c:24 [inline] [] __riscv_sys_mmap+0xfc/0x15e arch/riscv/kernel/sys_riscv.c:24 [] syscall_handler+0x94/0x118 arch/riscv/include/asm/syscall.h:90 [] do_trap_ecall_u+0x1aa/0x216 arch/riscv/kernel/traps.c:331 [] handle_exception+0x146/0x152 arch/riscv/kernel/entry.S:197 Allocated by task 7513: stack_trace_save+0xa0/0xd2 kernel/stacktrace.c:122 kasan_save_stack+0x3e/0x6a mm/kasan/common.c:47 kasan_save_track+0x16/0x28 mm/kasan/common.c:68 kasan_save_alloc_info+0x30/0x3e mm/kasan/generic.c:568 unpoison_slab_object mm/kasan/common.c:319 [inline] __kasan_slab_alloc+0x7c/0x82 mm/kasan/common.c:345 kasan_slab_alloc include/linux/kasan.h:250 [inline] slab_post_alloc_hook mm/slub.c:4119 [inline] slab_alloc_node mm/slub.c:4168 [inline] kmem_cache_alloc_noprof+0x108/0x3da mm/slub.c:4175 vm_area_alloc+0x32/0x1c8 kernel/fork.c:472 __mmap_new_vma mm/vma.c:2340 [inline] __mmap_region+0xb50/0x202c mm/vma.c:2456 mmap_region+0x1b0/0x218 mm/mmap.c:1348 do_mmap+0xaa8/0xe00 mm/mmap.c:496 vm_mmap_pgoff+0x1a0/0x312 mm/util.c:580 ksys_mmap_pgoff+0x2c8/0x6f8 mm/mmap.c:542 riscv_sys_mmap arch/riscv/kernel/sys_riscv.c:19 [inline] __do_sys_mmap arch/riscv/kernel/sys_riscv.c:28 [inline] __se_sys_mmap arch/riscv/kernel/sys_riscv.c:24 [inline] __riscv_sys_mmap+0xfc/0x15e arch/riscv/kernel/sys_riscv.c:24 syscall_handler+0x94/0x118 arch/riscv/include/asm/syscall.h:90 do_trap_ecall_u+0x1aa/0x216 arch/riscv/kernel/traps.c:331 handle_exception+0x146/0x152 arch/riscv/kernel/entry.S:197 Freed by task 4735: stack_trace_save+0xa0/0xd2 kernel/stacktrace.c:122 kasan_save_stack+0x3e/0x6a mm/kasan/common.c:47 kasan_save_track+0x16/0x28 mm/kasan/common.c:68 kasan_save_free_info+0x40/0x5c mm/kasan/generic.c:582 poison_slab_object mm/kasan/common.c:247 [inline] __kasan_slab_free+0x4e/0x68 mm/kasan/common.c:264 kasan_slab_free include/linux/kasan.h:233 [inline] slab_free_hook mm/slub.c:2353 [inline] slab_free mm/slub.c:4613 [inline] kmem_cache_free+0x20e/0x630 mm/slub.c:4715 __vm_area_free+0xea/0x144 kernel/fork.c:515 vm_area_free_rcu_cb+0x74/0xaa kernel/fork.c:526 rcu_do_batch kernel/rcu/tree.c:2567 [inline] rcu_core+0xa24/0x1ea0 kernel/rcu/tree.c:2823 rcu_core_si+0xc/0x14 kernel/rcu/tree.c:2840 handle_softirqs+0x4b2/0x132e kernel/softirq.c:561 __do_softirq kernel/softirq.c:595 [inline] invoke_softirq kernel/softirq.c:435 [inline] __irq_exit_rcu+0x18c/0x550 kernel/softirq.c:662 irq_exit_rcu+0x10/0xf8 kernel/softirq.c:678 handle_riscv_irq+0x40/0x4c arch/riscv/kernel/traps.c:378 call_on_irq_stack+0x32/0x40 arch/riscv/kernel/entry.S:356 Last potentially related work creation: stack_trace_save+0xa0/0xd2 kernel/stacktrace.c:122 kasan_save_stack+0x3e/0x6a mm/kasan/common.c:47 __kasan_record_aux_stack+0x118/0x166 mm/kasan/generic.c:544 kasan_record_aux_stack_noalloc+0xe/0x16 mm/kasan/generic.c:554 __call_rcu_common.constprop.0+0x9a/0x934 kernel/rcu/tree.c:3086 call_rcu+0xc/0x14 kernel/rcu/tree.c:3190 vm_area_free+0x26/0x30 kernel/fork.c:533 vma_complete+0x672/0xa22 mm/vma.c:310 commit_merge+0x90e/0xda8 mm/vma.c:674 vma_merge_existing_range+0x83e/0x1b56 mm/vma.c:897 __mmap_region+0x6ac/0x202c mm/vma.c:2466 mmap_region+0x1b0/0x218 mm/mmap.c:1348 do_mmap+0xaa8/0xe00 mm/mmap.c:496 vm_mmap_pgoff+0x1a0/0x312 mm/util.c:580 ksys_mmap_pgoff+0x2c8/0x6f8 mm/mmap.c:542 riscv_sys_mmap arch/riscv/kernel/sys_riscv.c:19 [inline] __do_sys_mmap arch/riscv/kernel/sys_riscv.c:28 [inline] __se_sys_mmap arch/riscv/kernel/sys_riscv.c:24 [inline] __riscv_sys_mmap+0xfc/0x15e arch/riscv/kernel/sys_riscv.c:24 syscall_handler+0x94/0x118 arch/riscv/include/asm/syscall.h:90 do_trap_ecall_u+0x1aa/0x216 arch/riscv/kernel/traps.c:331 handle_exception+0x146/0x152 arch/riscv/kernel/entry.S:197 The buggy address belongs to the object at ff6000001eb055d0 which belongs to the cache vm_area_struct of size 184 The buggy address is located 32 bytes inside of freed 184-byte region [ff6000001eb055d0, ff6000001eb05688) The buggy address belongs to the physical page: page: refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x9eb05 memcg:ff6000001b0fc701 flags: 0xffe000000000000(node=0|zone=0|lastcpupid=0x7ff) page_type: f5(slab) raw: 0ffe000000000000 ff60000011e883c0 ff1c00000070b740 dead00000000000a raw: 0000000000000000 0000000080100010 00000001f5000000 ff6000001b0fc701 page dumped because: kasan: bad access detected page_owner tracks the page as allocated page last allocated via order 0, migratetype Unmovable, gfp_mask 0x52cc0(GFP_KERNEL|__GFP_NOWARN|__GFP_NORETRY|__GFP_COMP), pid 3155, tgid 3155 (sh), ts 303837601000, free_ts 303746847300 __set_page_owner+0xa2/0x70c mm/page_owner.c:320 set_page_owner include/linux/page_owner.h:32 [inline] post_alloc_hook+0xf0/0x1e8 mm/page_alloc.c:1556 prep_new_page mm/page_alloc.c:1564 [inline] get_page_from_freelist+0xdb0/0x2c0e mm/page_alloc.c:3474 __alloc_pages_noprof+0x1e8/0x1fc2 mm/page_alloc.c:4751 alloc_pages_mpol_noprof+0xf8/0x488 mm/mempolicy.c:2269 alloc_pages_noprof+0x174/0x2f0 mm/mempolicy.c:2348 alloc_slab_page mm/slub.c:2423 [inline] allocate_slab mm/slub.c:2589 [inline] new_slab+0x2b6/0x40e mm/slub.c:2642 ___slab_alloc+0x9c8/0x10e6 mm/slub.c:3830 __slab_alloc.constprop.0+0x60/0xb0 mm/slub.c:3920 __slab_alloc_node mm/slub.c:3995 [inline] slab_alloc_node mm/slub.c:4156 [inline] kmem_cache_alloc_noprof+0xd2/0x3da mm/slub.c:4175 vm_area_dup+0x34/0x2ec kernel/fork.c:487 __split_vma+0x198/0x1096 mm/vma.c:434 vms_gather_munmap_vmas+0x3b2/0x15cc mm/vma.c:1288 __mmap_prepare mm/vma.c:2241 [inline] __mmap_region+0x25c/0x202c mm/vma.c:2443 mmap_region+0xe8/0x218 mm/mmap.c:1348 do_mmap+0xaa8/0xe00 mm/mmap.c:496 page last free pid 3155 tgid 3155 stack trace: __reset_page_owner+0x8c/0x400 mm/page_owner.c:297 reset_page_owner include/linux/page_owner.h:25 [inline] free_pages_prepare mm/page_alloc.c:1127 [inline] free_unref_page+0x618/0x11d2 mm/page_alloc.c:2657 __free_pages+0x13a/0x1ba mm/page_alloc.c:4838 free_pages.part.0+0x268/0x4c6 mm/page_alloc.c:4851 free_pages+0xe/0x18 mm/page_alloc.c:4848 __tlb_remove_table_free mm/mmu_gather.c:229 [inline] tlb_remove_table_rcu+0xb6/0xee mm/mmu_gather.c:282 rcu_do_batch kernel/rcu/tree.c:2567 [inline] rcu_core+0xa24/0x1ea0 kernel/rcu/tree.c:2823 rcu_core_si+0xc/0x14 kernel/rcu/tree.c:2840 handle_softirqs+0x4b2/0x132e kernel/softirq.c:561 __do_softirq kernel/softirq.c:595 [inline] invoke_softirq kernel/softirq.c:435 [inline] __irq_exit_rcu+0x18c/0x550 kernel/softirq.c:662 irq_exit_rcu+0x10/0xf8 kernel/softirq.c:678 handle_riscv_irq+0x40/0x4c arch/riscv/kernel/traps.c:378 call_on_irq_stack+0x32/0x40 arch/riscv/kernel/entry.S:356 Memory state around the buggy address: ff6000001eb05480: 00 00 00 fc fc fc fc fc fc fc fc 00 00 00 00 00 ff6000001eb05500: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >ff6000001eb05580: 00 00 fc fc fc fc fc fc fc fc fa fb fb fb fb fb ^ ff6000001eb05600: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ff6000001eb05680: fb fc fc fc fc fc fc fc fc fa fb fb fb fb fb fb ==================================================================