EXT4-fs error (device loop4): ext4_xattr_ibody_get:591: inode #18: comm syz-executor.4: corrupted in-inode xattr ================================================================== BUG: KASAN: use-after-free in get_max_inline_xattr_value_size+0x373/0x510 fs/ext4/inline.c:61 Read of size 4 at addr ffff8881d8ec1084 by task syz-executor.4/7761 CPU: 0 PID: 7761 Comm: syz-executor.4 Not tainted 5.4.219-syzkaller-00002-ga0eae55f26a0 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/12/2023 Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0x1d8/0x241 lib/dump_stack.c:118 print_address_description+0x8c/0x630 mm/kasan/report.c:384 __kasan_report+0xf6/0x130 mm/kasan/report.c:516 kasan_report+0x30/0x60 mm/kasan/common.c:653 get_max_inline_xattr_value_size+0x373/0x510 fs/ext4/inline.c:61 ext4_get_max_inline_size+0x139/0x1f0 fs/ext4/inline.c:112 ext4_try_to_write_inline_data+0xd9/0x1750 fs/ext4/inline.c:673 ext4_write_begin+0x247/0x1d50 fs/ext4/inode.c:1312 ext4_da_write_begin+0x4a8/0xf80 fs/ext4/inode.c:3110 generic_perform_write+0x2f9/0x5a0 mm/filemap.c:3311 __generic_file_write_iter+0x239/0x490 mm/filemap.c:3440 ext4_file_write_iter+0x495/0x10e0 fs/ext4/file.c:270 do_iter_readv_writev+0x529/0x740 fs/read_write.c:690 do_iter_write+0x16f/0x570 fs/read_write.c:970 iter_file_splice_write+0x887/0x10f0 fs/splice.c:746 splice_direct_to_actor+0x4c4/0xb20 fs/splice.c:976 do_splice_direct+0x2a0/0x3f0 fs/splice.c:1064 do_sendfile+0x8f2/0xf10 fs/read_write.c:1464 __do_sys_sendfile64 fs/read_write.c:1525 [inline] __se_sys_sendfile64 fs/read_write.c:1511 [inline] __x64_sys_sendfile64+0x1ce/0x230 fs/read_write.c:1511 do_syscall_64+0xcb/0x1c0 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x5c/0xc1 Allocated by task 6926: save_stack mm/kasan/common.c:70 [inline] set_track mm/kasan/common.c:78 [inline] __kasan_kmalloc+0x131/0x1e0 mm/kasan/common.c:529 kmalloc include/linux/slab.h:556 [inline] kzalloc include/linux/slab.h:690 [inline] kvm_create_vm_debugfs arch/x86/kvm/../../../virt/kvm/kvm_main.c:671 [inline] kvm_dev_ioctl_create_vm arch/x86/kvm/../../../virt/kvm/kvm_main.c:3705 [inline] kvm_dev_ioctl+0x1360/0x1800 arch/x86/kvm/../../../virt/kvm/kvm_main.c:3732 do_vfs_ioctl+0x744/0x1730 fs/ioctl.c:47 ksys_ioctl fs/ioctl.c:742 [inline] __do_sys_ioctl fs/ioctl.c:749 [inline] __se_sys_ioctl fs/ioctl.c:747 [inline] __x64_sys_ioctl+0xd4/0x110 fs/ioctl.c:747 do_syscall_64+0xcb/0x1c0 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x5c/0xc1 Freed by task 6924: save_stack mm/kasan/common.c:70 [inline] set_track mm/kasan/common.c:78 [inline] kasan_set_free_info mm/kasan/common.c:345 [inline] __kasan_slab_free+0x178/0x240 mm/kasan/common.c:487 slab_free_hook mm/slub.c:1455 [inline] slab_free_freelist_hook+0x80/0x150 mm/slub.c:1494 slab_free mm/slub.c:3080 [inline] kfree+0xc6/0x260 mm/slub.c:4071 kvm_destroy_vm_debugfs arch/x86/kvm/../../../virt/kvm/kvm_main.c:633 [inline] kvm_destroy_vm arch/x86/kvm/../../../virt/kvm/kvm_main.c:828 [inline] kvm_put_kvm+0x16c/0x1130 arch/x86/kvm/../../../virt/kvm/kvm_main.c:871 kvm_vcpu_release+0x79/0x80 arch/x86/kvm/../../../virt/kvm/kvm_main.c:2805 __fput+0x261/0x680 fs/file_table.c:281 task_work_run+0x186/0x1b0 kernel/task_work.c:113 tracehook_notify_resume include/linux/tracehook.h:188 [inline] exit_to_usermode_loop+0x1ba/0x1d0 arch/x86/entry/common.c:163 prepare_exit_to_usermode+0x17c/0x1d0 arch/x86/entry/common.c:194 entry_SYSCALL_64_after_hwframe+0x5c/0xc1 The buggy address belongs to the object at ffff8881d8ec1080 which belongs to the cache kmalloc-16 of size 16 The buggy address is located 4 bytes inside of 16-byte region [ffff8881d8ec1080, ffff8881d8ec1090) The buggy address belongs to the page: page:ffffea000763b040 refcount:1 mapcount:0 mapping:ffff8881f5c03680 index:0xffff8881d8ec1460 flags: 0x8000000000000200(slab) raw: 8000000000000200 ffffea00077ed980 0000000d0000000d ffff8881f5c03680 raw: ffff8881d8ec1460 0000000080800039 00000001ffffffff 0000000000000000 page dumped because: kasan: bad access detected page_owner tracks the page as allocated page last allocated via order 0, migratetype Unmovable, gfp_mask 0x112cc0(GFP_USER|__GFP_NOWARN|__GFP_NORETRY) set_page_owner include/linux/page_owner.h:31 [inline] post_alloc_hook mm/page_alloc.c:2165 [inline] prep_new_page+0x194/0x380 mm/page_alloc.c:2171 get_page_from_freelist+0x524/0x560 mm/page_alloc.c:3794 __alloc_pages_nodemask+0x372/0x860 mm/page_alloc.c:4891 alloc_slab_page+0x39/0x3e0 mm/slub.c:343 allocate_slab mm/slub.c:1683 [inline] new_slab+0x97/0x450 mm/slub.c:1749 new_slab_objects mm/slub.c:2505 [inline] ___slab_alloc+0x320/0x4a0 mm/slub.c:2667 __slab_alloc+0x5a/0x90 mm/slub.c:2707 slab_alloc_node mm/slub.c:2792 [inline] slab_alloc mm/slub.c:2837 [inline] __kmalloc+0x197/0x2b0 mm/slub.c:3909 __kmalloc_node include/linux/slab.h:422 [inline] kmalloc_node include/linux/slab.h:599 [inline] kvmalloc_node+0x7e/0xf0 mm/util.c:596 kvmalloc include/linux/mm.h:759 [inline] kvmalloc_array include/linux/mm.h:777 [inline] kvcalloc include/linux/mm.h:782 [inline] check_cfg+0x82/0xaf0 kernel/bpf/verifier.c:6588 bpf_check+0x26ba/0xb740 kernel/bpf/verifier.c:9606 bpf_prog_load kernel/bpf/syscall.c:1724 [inline] __do_sys_bpf kernel/bpf/syscall.c:2891 [inline] __se_sys_bpf+0x77f6/0xbba0 kernel/bpf/syscall.c:2849 do_syscall_64+0xcb/0x1c0 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x5c/0xc1 page last free stack trace: reset_page_owner include/linux/page_owner.h:24 [inline] free_pages_prepare mm/page_alloc.c:1176 [inline] free_pcp_prepare+0x1a4/0x290 mm/page_alloc.c:1233 free_unref_page_prepare mm/page_alloc.c:3085 [inline] free_unref_page mm/page_alloc.c:3134 [inline] free_the_page mm/page_alloc.c:4951 [inline] __free_pages+0x9c/0x250 mm/page_alloc.c:4959 __vunmap+0x7d7/0x910 mm/vmalloc.c:2260 bpf_prog_calc_tag+0x76b/0xa40 kernel/bpf/core.c:335 replace_map_fd_with_map_ptr kernel/bpf/verifier.c:8191 [inline] bpf_check+0x944/0xb740 kernel/bpf/verifier.c:9581 bpf_prog_load kernel/bpf/syscall.c:1724 [inline] __do_sys_bpf kernel/bpf/syscall.c:2891 [inline] __se_sys_bpf+0x77f6/0xbba0 kernel/bpf/syscall.c:2849 do_syscall_64+0xcb/0x1c0 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x5c/0xc1 Memory state around the buggy address: ffff8881d8ec0f80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ffff8881d8ec1000: fb fb fc fc fb fb fc fc 00 00 fc fc fb fb fc fc >ffff8881d8ec1080: fb fb fc fc fb fb fc fc fb fb fc fc fb fb fc fc ^ ffff8881d8ec1100: 00 00 fc fc fb fb fc fc fb fb fc fc fb fb fc fc ffff8881d8ec1180: 00 00 fc fc 00 00 fc fc fb fb fc fc fb fb fc fc ================================================================== EXT4-fs error (device loop4): ext4_read_block_bitmap_nowait:430: comm syz-executor.4: Invalid block bitmap block 0 in block_group 0