================================================================== BUG: KASAN: use-after-free in ext4_ext_binsearch fs/ext4/extents.c:841 [inline] BUG: KASAN: use-after-free in ext4_find_extent+0xae6/0xcc0 fs/ext4/extents.c:956 Read of size 4 at addr ffff88801fd3d52c by task syz.0.0/5346 CPU: 0 UID: 0 PID: 5346 Comm: syz.0.0 Not tainted syzkaller #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 Call Trace: dump_stack_lvl+0xe8/0x150 lib/dump_stack.c:120 print_address_description mm/kasan/report.c:378 [inline] print_report+0xca/0x240 mm/kasan/report.c:482 kasan_report+0x118/0x150 mm/kasan/report.c:595 ext4_ext_binsearch fs/ext4/extents.c:841 [inline] ext4_find_extent+0xae6/0xcc0 fs/ext4/extents.c:956 ext4_ext_map_blocks+0x278/0x69c0 fs/ext4/extents.c:4208 ext4_map_create_blocks fs/ext4/inode.c:613 [inline] ext4_map_blocks+0x82c/0x16f0 fs/ext4/inode.c:816 mpage_map_one_extent fs/ext4/inode.c:2380 [inline] mpage_map_and_submit_extent fs/ext4/inode.c:2474 [inline] ext4_do_writepages+0x222f/0x4500 fs/ext4/inode.c:2932 ext4_writepages+0x203/0x350 fs/ext4/inode.c:3026 do_writepages+0x32e/0x550 mm/page-writeback.c:2598 filemap_writeback mm/filemap.c:387 [inline] filemap_fdatawrite_range mm/filemap.c:412 [inline] file_write_and_wait_range+0x23e/0x340 mm/filemap.c:786 generic_buffers_fsync_noflush+0x70/0x1d0 fs/buffer.c:609 ext4_fsync_nojournal fs/ext4/fsync.c:88 [inline] ext4_sync_file+0x322/0xae0 fs/ext4/fsync.c:147 generic_write_sync include/linux/fs.h:2616 [inline] ext4_buffered_write_iter+0x2ca/0x3a0 fs/ext4/file.c:305 ext4_file_write_iter+0x292/0x1bc0 fs/ext4/file.c:-1 new_sync_write fs/read_write.c:593 [inline] vfs_write+0x5c9/0xb30 fs/read_write.c:686 ksys_pwrite64 fs/read_write.c:793 [inline] __do_sys_pwrite64 fs/read_write.c:801 [inline] __se_sys_pwrite64 fs/read_write.c:798 [inline] __x64_sys_pwrite64+0x193/0x220 fs/read_write.c:798 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0xec/0xf80 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fe61258f7c9 Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007fe6134a1038 EFLAGS: 00000246 ORIG_RAX: 0000000000000012 RAX: ffffffffffffffda RBX: 00007fe6127e6090 RCX: 00007fe61258f7c9 RDX: 000000000000fdef RSI: 0000200000000140 RDI: 0000000000000026 RBP: 00007fe612613f91 R08: 0000000000000000 R09: 0000000000000000 R10: 000000000000fecc R11: 0000000000000246 R12: 0000000000000000 R13: 00007fe6127e6128 R14: 00007fe6127e6090 R15: 00007ffe60227bc8 The buggy address belongs to the physical page: page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x12 pfn:0x1fd3d flags: 0xfff00000000000(node=0|zone=1|lastcpupid=0x7ff) raw: 00fff00000000000 dead000000000100 dead000000000122 0000000000000000 raw: 0000000000000012 0000000000000000 00000000ffffffff 0000000000000000 page dumped because: kasan: bad access detected page_owner tracks the page as freed page last allocated via order 0, migratetype Movable, gfp_mask 0x152c4a(GFP_NOFS|__GFP_HIGHMEM|__GFP_MOVABLE|__GFP_NOWARN|__GFP_NORETRY|__GFP_COMP|__GFP_HARDWALL), pid 4735, tgid 4735 (udevd), ts 28853476644, free_ts 82187503597 set_page_owner include/linux/page_owner.h:32 [inline] post_alloc_hook+0x234/0x290 mm/page_alloc.c:1857 prep_new_page mm/page_alloc.c:1865 [inline] get_page_from_freelist+0x24e0/0x2580 mm/page_alloc.c:3915 __alloc_frozen_pages_noprof+0x181/0x370 mm/page_alloc.c:5210 alloc_pages_mpol+0x232/0x4a0 mm/mempolicy.c:2486 alloc_frozen_pages_noprof mm/mempolicy.c:2557 [inline] alloc_pages_noprof+0xa9/0x190 mm/mempolicy.c:2577 folio_alloc_noprof+0x1e/0x30 mm/mempolicy.c:2587 filemap_alloc_folio_noprof+0x107/0x470 mm/filemap.c:1013 ractl_alloc_folio mm/readahead.c:189 [inline] page_cache_ra_unbounded+0x34f/0x990 mm/readahead.c:275 filemap_readahead mm/filemap.c:2658 [inline] filemap_get_pages+0x7ff/0x1dc0 mm/filemap.c:2704 filemap_read+0x3f6/0x11a0 mm/filemap.c:2800 __kernel_read+0x4cf/0x960 fs/read_write.c:530 integrity_kernel_read+0x89/0xd0 security/integrity/iint.c:28 ima_calc_file_hash_tfm security/integrity/ima/ima_crypto.c:480 [inline] ima_calc_file_shash security/integrity/ima/ima_crypto.c:511 [inline] ima_calc_file_hash+0x85e/0x16f0 security/integrity/ima/ima_crypto.c:568 ima_collect_measurement+0x428/0x8f0 security/integrity/ima/ima_api.c:293 process_measurement+0x111e/0x1a70 security/integrity/ima/ima_main.c:406 ima_file_check+0xd9/0x130 security/integrity/ima/ima_main.c:663 page last free pid 76 tgid 76 stack trace: reset_page_owner include/linux/page_owner.h:25 [inline] free_pages_prepare mm/page_alloc.c:1406 [inline] free_unref_folios+0xdb3/0x14f0 mm/page_alloc.c:3000 shrink_folio_list+0x4785/0x4f90 mm/vmscan.c:1603 evict_folios+0x473e/0x57f0 mm/vmscan.c:4711 try_to_shrink_lruvec+0x8a3/0xb50 mm/vmscan.c:4874 shrink_one+0x25c/0x720 mm/vmscan.c:4919 shrink_many mm/vmscan.c:4982 [inline] lru_gen_shrink_node mm/vmscan.c:5060 [inline] shrink_node+0x2f7d/0x35b0 mm/vmscan.c:6047 kswapd_shrink_node mm/vmscan.c:6901 [inline] balance_pgdat mm/vmscan.c:7084 [inline] kswapd+0x145a/0x2820 mm/vmscan.c:7354 kthread+0x711/0x8a0 kernel/kthread.c:463 ret_from_fork+0x510/0xa50 arch/x86/kernel/process.c:158 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246 Memory state around the buggy address: ffff88801fd3d400: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ffff88801fd3d480: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff >ffff88801fd3d500: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ^ ffff88801fd3d580: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ffff88801fd3d600: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ==================================================================