================================================================== BUG: KASAN: use-after-free in ext4_xattr_delete_inode+0xcd0/0xce0 fs/ext4/xattr.c:2905 Read of size 4 at addr ffff888136a9c000 by task syz-executor.4/2246 CPU: 1 PID: 2246 Comm: syz-executor.4 Tainted: G W 6.1.78-syzkaller-00006-gb22d7c4ca0d3 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/02/2024 Call Trace: __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0x151/0x1b7 lib/dump_stack.c:106 print_address_description mm/kasan/report.c:316 [inline] print_report+0x158/0x4e0 mm/kasan/report.c:427 kasan_report+0x13c/0x170 mm/kasan/report.c:531 __asan_report_load4_noabort+0x14/0x20 mm/kasan/report_generic.c:350 ext4_xattr_delete_inode+0xcd0/0xce0 fs/ext4/xattr.c:2905 ext4_evict_inode+0xef9/0x1550 fs/ext4/inode.c:296 evict+0x2a3/0x630 fs/inode.c:666 iput_final fs/inode.c:1791 [inline] iput+0x642/0x870 fs/inode.c:1817 d_delete_notify include/linux/fsnotify.h:284 [inline] vfs_rmdir+0x3c2/0x500 fs/namei.c:4205 do_rmdir+0x3ab/0x630 fs/namei.c:4253 __do_sys_unlinkat fs/namei.c:4433 [inline] __se_sys_unlinkat fs/namei.c:4427 [inline] __x64_sys_unlinkat+0xdf/0xf0 fs/namei.c:4427 do_syscall_x64 arch/x86/entry/common.c:51 [inline] do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:81 entry_SYSCALL_64_after_hwframe+0x63/0xcd RIP: 0033:0x7f980cc7c687 Code: 73 01 c3 48 c7 c1 b0 ff ff ff f7 d8 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 b8 07 01 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:00007ffc995ee8b8 EFLAGS: 00000207 ORIG_RAX: 0000000000000107 RAX: ffffffffffffffda RBX: 0000000000000065 RCX: 00007f980cc7c687 RDX: 0000000000000200 RSI: 00007ffc995efa60 RDI: 00000000ffffff9c RBP: 00007f980ccd9636 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000100 R11: 0000000000000207 R12: 00007ffc995efa60 R13: 00007f980ccd9636 R14: 0000000000014979 R15: 0000000000000009 The buggy address belongs to the physical page: page:ffffea0004daa700 refcount:1 mapcount:0 mapping:ffff888135b8e418 index:0x116c pfn:0x136a9c memcg:ffff8881105aa000 aops:shmem_aops ino:3a dentry name:"memfd:syzkaller" flags: 0x580000000008001e(referenced|uptodate|dirty|lru|swapbacked|zone=1) raw: 580000000008001e ffffea0004f2f0c8 ffffea0004daa748 ffff888135b8e418 raw: 000000000000116c 0000000000000000 00000001ffffffff ffff8881105aa000 page dumped because: kasan: bad access detected page_owner tracks the page as allocated page last allocated via order 0, migratetype Movable, gfp_mask 0x140cca(GFP_HIGHUSER_MOVABLE|__GFP_COMP), pid 2610, tgid 2609 (syz-executor.3), ts 84590077725, free_ts 78533541434 set_page_owner include/linux/page_owner.h:33 [inline] post_alloc_hook+0x213/0x220 mm/page_alloc.c:2590 prep_new_page+0x1b/0x110 mm/page_alloc.c:2597 get_page_from_freelist+0x27ea/0x2870 mm/page_alloc.c:4425 __alloc_pages+0x3a1/0x780 mm/page_alloc.c:5712 __folio_alloc+0x15/0x40 mm/page_alloc.c:5744 __folio_alloc_node include/linux/gfp.h:245 [inline] folio_alloc include/linux/gfp.h:274 [inline] shmem_alloc_folio mm/shmem.c:1597 [inline] shmem_alloc_and_acct_folio+0x78c/0xa50 mm/shmem.c:1622 shmem_get_folio_gfp+0x12d4/0x24b0 mm/shmem.c:1950 shmem_get_folio mm/shmem.c:2081 [inline] shmem_write_begin+0x164/0x3a0 mm/shmem.c:2569 generic_perform_write+0x2f9/0x5c0 mm/filemap.c:3838 __generic_file_write_iter+0x174/0x3a0 mm/filemap.c:3966 generic_file_write_iter+0xb1/0x310 mm/filemap.c:3998 call_write_iter include/linux/fs.h:2258 [inline] new_sync_write fs/read_write.c:491 [inline] vfs_write+0x902/0xeb0 fs/read_write.c:584 ksys_write+0x199/0x2c0 fs/read_write.c:637 __do_sys_write fs/read_write.c:649 [inline] __se_sys_write fs/read_write.c:646 [inline] __x64_sys_write+0x7b/0x90 fs/read_write.c:646 do_syscall_x64 arch/x86/entry/common.c:51 [inline] do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:81 entry_SYSCALL_64_after_hwframe+0x63/0xcd page last free stack trace: reset_page_owner include/linux/page_owner.h:26 [inline] free_pages_prepare mm/page_alloc.c:1498 [inline] free_pcp_prepare mm/page_alloc.c:1572 [inline] free_unref_page_prepare+0x83d/0x850 mm/page_alloc.c:3498 free_unref_page_list+0xf1/0x7b0 mm/page_alloc.c:3646 release_pages+0xf7f/0xfe0 mm/swap.c:1063 __pagevec_release+0x84/0x100 mm/swap.c:1083 pagevec_release include/linux/pagevec.h:71 [inline] folio_batch_release include/linux/pagevec.h:135 [inline] truncate_inode_pages_range+0xe1c/0x1020 mm/truncate.c:432 truncate_inode_pages mm/truncate.c:456 [inline] truncate_inode_pages_final+0x83/0x90 mm/truncate.c:495 ext4_evict_inode+0x3b0/0x1550 fs/ext4/inode.c:221 evict+0x2a3/0x630 fs/inode.c:666 iput_final fs/inode.c:1791 [inline] iput+0x642/0x870 fs/inode.c:1817 do_unlinkat+0x4e1/0x920 fs/namei.c:4398 __do_sys_unlink fs/namei.c:4439 [inline] __se_sys_unlink fs/namei.c:4437 [inline] __x64_sys_unlink+0x49/0x50 fs/namei.c:4437 do_syscall_x64 arch/x86/entry/common.c:51 [inline] do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:81 entry_SYSCALL_64_after_hwframe+0x63/0xcd Memory state around the buggy address: ffff888136a9bf00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ffff888136a9bf80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >ffff888136a9c000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ^ ffff888136a9c080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ffff888136a9c100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ==================================================================