================================================================== BUG: KASAN: use-after-free in cleancache_fs_enabled_mapping include/linux/cleancache.h:56 [inline] BUG: KASAN: use-after-free in cleancache_invalidate_page include/linux/cleancache.h:110 [inline] BUG: KASAN: use-after-free in unaccount_page_cache_page+0x6d8/0x750 mm/filemap.c:167 Read of size 4 at addr ffff88810aca3470 by task syz.4.1764/6873 CPU: 0 PID: 6873 Comm: syz.4.1764 Not tainted 5.15.178-syzkaller-00385-ga8a88afaecee #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/12/2025 Call Trace: __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0x151/0x1c0 lib/dump_stack.c:106 print_address_description+0x87/0x3b0 mm/kasan/report.c:248 __kasan_report mm/kasan/report.c:427 [inline] kasan_report+0x179/0x1c0 mm/kasan/report.c:444 __asan_report_load4_noabort+0x14/0x20 mm/kasan/report_generic.c:308 cleancache_fs_enabled_mapping include/linux/cleancache.h:56 [inline] cleancache_invalidate_page include/linux/cleancache.h:110 [inline] unaccount_page_cache_page+0x6d8/0x750 mm/filemap.c:167 __delete_from_page_cache+0xc6/0x5b0 mm/filemap.c:235 __remove_mapping+0x566/0x690 mm/vmscan.c:1208 shrink_page_list+0x2723/0x5c50 mm/vmscan.c:1805 shrink_inactive_list mm/vmscan.c:2312 [inline] shrink_list mm/vmscan.c:2557 [inline] shrink_lruvec+0x17ec/0x4580 mm/vmscan.c:5762 shrink_node_memcgs mm/vmscan.c:5954 [inline] shrink_node+0x1083/0x2550 mm/vmscan.c:5984 shrink_zones mm/vmscan.c:6190 [inline] do_try_to_free_pages+0x5c6/0x1600 mm/vmscan.c:6248 try_to_free_mem_cgroup_pages+0x36c/0x850 mm/vmscan.c:6562 try_charge_memcg+0x48f/0x1550 mm/memcontrol.c:2699 try_charge mm/memcontrol.c:2824 [inline] charge_memcg+0x6b/0x1a0 mm/memcontrol.c:6850 __mem_cgroup_charge+0x37/0x130 mm/memcontrol.c:6886 mem_cgroup_charge include/linux/memcontrol.h:715 [inline] __add_to_page_cache_locked+0x2d1/0xa20 mm/filemap.c:896 add_to_page_cache_lru+0x11b/0x2c0 mm/filemap.c:988 pagecache_get_page+0xbe1/0xeb0 mm/filemap.c:1957 grab_cache_page_write_begin+0x5d/0xa0 mm/filemap.c:3811 simple_write_begin+0x34/0x160 fs/libfs.c:533 generic_perform_write+0x2de/0x750 mm/filemap.c:3857 __generic_file_write_iter+0x25b/0x4b0 mm/filemap.c:3985 generic_file_write_iter+0xaf/0x1c0 mm/filemap.c:4017 __kernel_write+0x5ab/0xa60 fs/read_write.c:539 __dump_emit+0x261/0x3a0 fs/coredump.c:875 dump_emit+0x381/0x3f0 fs/coredump.c:912 dump_user_range+0x86/0x1c0 fs/coredump.c:949 elf_core_dump+0x3663/0x3e80 fs/binfmt_elf.c:2285 do_coredump+0x1834/0x3050 fs/coredump.c:826 get_signal+0x4c8/0x1630 kernel/signal.c:2893 arch_do_signal_or_restart+0xbd/0x1680 arch/x86/kernel/signal.c:867 handle_signal_work kernel/entry/common.c:154 [inline] exit_to_user_mode_loop+0xa0/0xe0 kernel/entry/common.c:178 exit_to_user_mode_prepare+0x5a/0xa0 kernel/entry/common.c:214 irqentry_exit_to_user_mode+0x9/0x10 kernel/entry/common.c:320 irqentry_exit+0x12/0x40 kernel/entry/common.c:411 exc_page_fault+0x47a/0x7f0 arch/x86/mm/fault.c:1568 asm_exc_page_fault+0x27/0x30 arch/x86/include/asm/idtentry.h:606 RIP: 0033:0x7f7c75e07757 Code: 88 15 a2 6f e8 00 88 05 9f 6f e8 00 c3 50 48 8d 35 48 02 1c 00 48 8d 3d 4e 02 1c 00 31 c0 e8 30 f7 ff ff 53 89 fb 48 83 ec 10 <64> 8b 04 25 94 ff ff ff 85 c0 74 2a 89 fe 31 c0 bf 3c 00 00 00 e8 RSP: 002b:00007f7c74591120 EFLAGS: 00010202 RAX: 0000000000000000 RBX: 000000000000000b RCX: 00007f7c75f46169 RDX: 00007f7c74591140 RSI: 00007f7c74591270 RDI: 000000000000000b RBP: 00007f7c75fc7990 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000206 R12: 0000000000000000 R13: 0000000000000000 R14: 00007f7c7615efa0 R15: 00007ffde84ff678 Allocated by task 337: kasan_save_stack mm/kasan/common.c:38 [inline] kasan_set_track mm/kasan/common.c:45 [inline] set_alloc_info mm/kasan/common.c:433 [inline] __kasan_slab_alloc+0xb1/0xe0 mm/kasan/common.c:466 kasan_slab_alloc include/linux/kasan.h:217 [inline] slab_post_alloc_hook+0x53/0x2c0 mm/slab.h:550 slab_alloc_node mm/slub.c:3240 [inline] slab_alloc mm/slub.c:3250 [inline] kmem_cache_alloc+0xf5/0x250 mm/slub.c:3255 getname_flags+0xba/0x520 fs/namei.c:138 getname fs/namei.c:217 [inline] __do_sys_symlink fs/namei.c:4480 [inline] __se_sys_symlink fs/namei.c:4478 [inline] __x64_sys_symlink+0x5f/0x90 fs/namei.c:4478 x64_sys_call+0x290/0x9a0 arch/x86/include/generated/asm/syscalls_64.h:89 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x3b/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x66/0xd0 Freed by task 337: kasan_save_stack mm/kasan/common.c:38 [inline] kasan_set_track+0x4b/0x70 mm/kasan/common.c:45 kasan_set_free_info+0x23/0x40 mm/kasan/generic.c:370 ____kasan_slab_free+0x126/0x160 mm/kasan/common.c:365 __kasan_slab_free+0x11/0x20 mm/kasan/common.c:373 kasan_slab_free include/linux/kasan.h:193 [inline] slab_free_hook mm/slub.c:1723 [inline] slab_free_freelist_hook+0xbd/0x190 mm/slub.c:1749 slab_free mm/slub.c:3521 [inline] kmem_cache_free+0x115/0x330 mm/slub.c:3539 putname fs/namei.c:271 [inline] do_symlinkat+0x4ca/0x5a0 fs/namei.c:4468 __do_sys_symlink fs/namei.c:4480 [inline] __se_sys_symlink fs/namei.c:4478 [inline] __x64_sys_symlink+0x7e/0x90 fs/namei.c:4478 x64_sys_call+0x290/0x9a0 arch/x86/include/generated/asm/syscalls_64.h:89 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x3b/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x66/0xd0 The buggy address belongs to the object at ffff88810aca3300 which belongs to the cache names_cache of size 4096 The buggy address is located 368 bytes inside of 4096-byte region [ffff88810aca3300, ffff88810aca4300) The buggy address belongs to the page: page:ffffea00042b2800 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x10aca0 head:ffffea00042b2800 order:3 compound_mapcount:0 compound_pincount:0 flags: 0x4000000000010200(slab|head|zone=1) raw: 4000000000010200 0000000000000000 dead000000000122 ffff8881001c4300 raw: 0000000000000000 0000000000070007 00000001ffffffff 0000000000000000 page dumped because: kasan: bad access detected page_owner tracks the page as allocated page last allocated via order 3, migratetype Unmovable, gfp_mask 0x1d20c0(__GFP_IO|__GFP_FS|__GFP_NOWARN|__GFP_NORETRY|__GFP_COMP|__GFP_NOMEMALLOC|__GFP_HARDWALL), pid 337, ts 279055231960, free_ts 279053443577 set_page_owner include/linux/page_owner.h:33 [inline] post_alloc_hook+0x1a3/0x1b0 mm/page_alloc.c:2605 prep_new_page+0x1b/0x110 mm/page_alloc.c:2611 get_page_from_freelist+0x3550/0x35d0 mm/page_alloc.c:4485 __alloc_pages+0x27e/0x8f0 mm/page_alloc.c:5780 alloc_slab_page mm/slub.c:-1 [inline] allocate_slab mm/slub.c:1932 [inline] new_slab+0x9a/0x4e0 mm/slub.c:1995 ___slab_alloc+0x39e/0x830 mm/slub.c:3028 __slab_alloc+0x4a/0x90 mm/slub.c:3115 slab_alloc_node mm/slub.c:3206 [inline] slab_alloc mm/slub.c:3250 [inline] kmem_cache_alloc+0x139/0x250 mm/slub.c:3255 getname_flags+0xba/0x520 fs/namei.c:138 getname fs/namei.c:217 [inline] __do_sys_rename fs/namei.c:5031 [inline] __se_sys_rename fs/namei.c:5029 [inline] __x64_sys_rename+0x5f/0x90 fs/namei.c:5029 x64_sys_call+0x266/0x9a0 arch/x86/include/generated/asm/syscalls_64.h:83 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x3b/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x66/0xd0 page last free stack trace: reset_page_owner include/linux/page_owner.h:26 [inline] free_pages_prepare mm/page_alloc.c:1472 [inline] free_pcp_prepare mm/page_alloc.c:1544 [inline] free_unref_page_prepare+0x7c8/0x7d0 mm/page_alloc.c:3534 free_unref_page+0xe8/0x750 mm/page_alloc.c:3616 free_the_page mm/page_alloc.c:805 [inline] __free_pages+0x61/0xf0 mm/page_alloc.c:5856 __free_slab+0xec/0x1d0 mm/slub.c:2020 free_slab mm/slub.c:2035 [inline] discard_slab mm/slub.c:2041 [inline] __unfreeze_partials+0x165/0x1a0 mm/slub.c:2527 put_cpu_partial+0xc4/0x120 mm/slub.c:2607 __slab_free+0x1c8/0x290 mm/slub.c:3390 do_slab_free mm/slub.c:3509 [inline] ___cache_free+0x109/0x120 mm/slub.c:3530 qlink_free+0x4d/0x90 mm/kasan/quarantine.c:157 qlist_free_all+0x44/0xb0 mm/kasan/quarantine.c:176 kasan_quarantine_reduce+0x15a/0x180 mm/kasan/quarantine.c:283 __kasan_slab_alloc+0x2f/0xe0 mm/kasan/common.c:443 kasan_slab_alloc include/linux/kasan.h:217 [inline] slab_post_alloc_hook+0x53/0x2c0 mm/slab.h:550 slab_alloc_node mm/slub.c:3240 [inline] slab_alloc mm/slub.c:3250 [inline] kmem_cache_alloc+0xf5/0x250 mm/slub.c:3255 getname_flags+0xba/0x520 fs/namei.c:138 getname+0x19/0x20 fs/namei.c:217 Memory state around the buggy address: ffff88810aca3300: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ffff88810aca3380: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb >ffff88810aca3400: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ^ ffff88810aca3480: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ffff88810aca3500: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ==================================================================