================================================================== BUG: KASAN: use-after-free in d_inode include/linux/dcache.h:516 [inline] BUG: KASAN: use-after-free in relay_switch_subbuf+0x837/0x900 kernel/relay.c:676 Read of size 8 at addr ffff888032508c28 by task syz-executor.2/31322 CPU: 0 PID: 31322 Comm: syz-executor.2 Not tainted 5.19.0-rc4-syzkaller-00125-ga175eca0f3d7 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 06/29/2022 Call Trace: __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106 print_address_description.constprop.0.cold+0xeb/0x495 mm/kasan/report.c:313 print_report mm/kasan/report.c:429 [inline] kasan_report.cold+0xf4/0x1c6 mm/kasan/report.c:491 d_inode include/linux/dcache.h:516 [inline] relay_switch_subbuf+0x837/0x900 kernel/relay.c:676 relay_reserve include/linux/relay.h:248 [inline] trace_note+0x5af/0x720 kernel/trace/blktrace.c:95 trace_note_tsk kernel/trace/blktrace.c:126 [inline] __blk_add_trace+0xbfb/0xdf0 kernel/trace/blktrace.c:267 blk_add_trace_bio+0x326/0x4f0 kernel/trace/blktrace.c:905 trace_block_bio_queue include/trace/events/block.h:355 [inline] submit_bio_noacct+0x1404/0x1b30 block/blk-core.c:843 submit_bio block/blk-core.c:901 [inline] submit_bio+0xd7/0x300 block/blk-core.c:873 submit_bh_wbc+0x4bc/0x670 fs/buffer.c:3039 submit_bh fs/buffer.c:3045 [inline] __bread_slow fs/buffer.c:1177 [inline] __bread_gfp+0x178/0x3b0 fs/buffer.c:1381 sb_bread include/linux/buffer_head.h:302 [inline] fat_fill_super+0x33e/0x3740 fs/fat/inode.c:1651 mount_bdev+0x34d/0x410 fs/super.c:1367 legacy_get_tree+0x105/0x220 fs/fs_context.c:610 vfs_get_tree+0x89/0x2f0 fs/super.c:1497 do_new_mount fs/namespace.c:3040 [inline] path_mount+0x1320/0x1fa0 fs/namespace.c:3370 do_mount fs/namespace.c:3383 [inline] __do_sys_mount fs/namespace.c:3591 [inline] __se_sys_mount fs/namespace.c:3568 [inline] __x64_sys_mount+0x27f/0x300 fs/namespace.c:3568 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x46/0xb0 RIP: 0033:0x7fd57148a63a Code: 48 c7 c2 b8 ff ff ff f7 d8 64 89 02 b8 ff ff ff ff eb d2 e8 b8 04 00 00 0f 1f 84 00 00 00 00 00 49 89 ca b8 a5 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007fd5725a3f88 EFLAGS: 00000206 ORIG_RAX: 00000000000000a5 RAX: ffffffffffffffda RBX: 0000000020000180 RCX: 00007fd57148a63a RDX: 0000000020000000 RSI: 0000000020000040 RDI: 00007fd5725a3fe0 RBP: 00007fd5725a4020 R08: 00007fd5725a4020 R09: 0000000020000000 R10: 0000000000000000 R11: 0000000000000206 R12: 0000000020000000 R13: 0000000020000040 R14: 00007fd5725a3fe0 R15: 00000000200001c0 Allocated by task 9099: kasan_save_stack+0x1e/0x40 mm/kasan/common.c:38 kasan_set_track mm/kasan/common.c:45 [inline] set_alloc_info mm/kasan/common.c:436 [inline] __kasan_slab_alloc+0x90/0xc0 mm/kasan/common.c:469 kasan_slab_alloc include/linux/kasan.h:224 [inline] slab_post_alloc_hook mm/slab.h:750 [inline] slab_alloc_node mm/slub.c:3243 [inline] slab_alloc mm/slub.c:3251 [inline] __kmem_cache_alloc_lru mm/slub.c:3258 [inline] kmem_cache_alloc_lru+0x31a/0x720 mm/slub.c:3275 __d_alloc+0x32/0x960 fs/dcache.c:1769 d_alloc+0x4a/0x230 fs/dcache.c:1849 d_alloc_parallel+0xe7/0x1af0 fs/dcache.c:2601 __lookup_slow+0x193/0x480 fs/namei.c:1686 lookup_one_len+0x16a/0x1a0 fs/namei.c:2730 start_creating.part.0+0x13a/0x290 fs/debugfs/inode.c:352 start_creating fs/debugfs/inode.c:325 [inline] __debugfs_create_file+0xa9/0x540 fs/debugfs/inode.c:397 relay_create_buf_file+0xf0/0x170 kernel/relay.c:363 relay_open_buf.part.0+0x7bb/0xc00 kernel/relay.c:392 relay_open_buf kernel/relay.c:384 [inline] relay_open kernel/relay.c:520 [inline] relay_open+0x4fb/0xa00 kernel/relay.c:477 do_blk_trace_setup+0x4bc/0xb60 kernel/trace/blktrace.c:559 __blk_trace_setup+0xca/0x180 kernel/trace/blktrace.c:599 blk_trace_ioctl+0x13b/0x270 kernel/trace/blktrace.c:740 blkdev_ioctl+0x181/0x800 block/ioctl.c:603 vfs_ioctl fs/ioctl.c:51 [inline] __do_sys_ioctl fs/ioctl.c:870 [inline] __se_sys_ioctl fs/ioctl.c:856 [inline] __x64_sys_ioctl+0x193/0x200 fs/ioctl.c:856 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x46/0xb0 Freed by task 31262: kasan_save_stack+0x1e/0x40 mm/kasan/common.c:38 kasan_set_track+0x21/0x30 mm/kasan/common.c:45 kasan_set_free_info+0x20/0x30 mm/kasan/generic.c:370 ____kasan_slab_free mm/kasan/common.c:366 [inline] ____kasan_slab_free+0x166/0x1a0 mm/kasan/common.c:328 kasan_slab_free include/linux/kasan.h:200 [inline] slab_free_hook mm/slub.c:1754 [inline] slab_free_freelist_hook+0x8b/0x1c0 mm/slub.c:1780 slab_free mm/slub.c:3536 [inline] kmem_cache_free+0xdd/0x5a0 mm/slub.c:3553 rcu_do_batch kernel/rcu/tree.c:2578 [inline] rcu_core+0x7b1/0x1880 kernel/rcu/tree.c:2838 __do_softirq+0x29b/0x9c2 kernel/softirq.c:571 Last potentially related work creation: kasan_save_stack+0x1e/0x40 mm/kasan/common.c:38 __kasan_record_aux_stack+0xbe/0xd0 mm/kasan/generic.c:348 call_rcu+0x99/0x790 kernel/rcu/tree.c:3126 dentry_free+0xc3/0x160 fs/dcache.c:377 __dentry_kill+0x4cb/0x640 fs/dcache.c:621 dentry_kill fs/dcache.c:745 [inline] dput+0x64d/0xdb0 fs/dcache.c:913 find_next_child fs/libfs.c:264 [inline] simple_recursive_removal+0x136/0x830 fs/libfs.c:279 debugfs_remove fs/debugfs/inode.c:742 [inline] debugfs_remove+0x59/0x80 fs/debugfs/inode.c:736 blk_unregister_queue+0x202/0x350 block/blk-sysfs.c:946 del_gendisk+0x31f/0x900 block/genhd.c:638 loop_remove+0x3a/0x140 drivers/block/loop.c:2059 loop_control_remove drivers/block/loop.c:2115 [inline] loop_control_ioctl+0x42b/0x540 drivers/block/loop.c:2153 vfs_ioctl fs/ioctl.c:51 [inline] __do_sys_ioctl fs/ioctl.c:870 [inline] __se_sys_ioctl fs/ioctl.c:856 [inline] __x64_sys_ioctl+0x193/0x200 fs/ioctl.c:856 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x46/0xb0 Second to last potentially related work creation: kasan_save_stack+0x1e/0x40 mm/kasan/common.c:38 __kasan_record_aux_stack+0xbe/0xd0 mm/kasan/generic.c:348 call_rcu+0x99/0x790 kernel/rcu/tree.c:3126 dentry_free+0xc3/0x160 fs/dcache.c:377 __dentry_kill+0x4cb/0x640 fs/dcache.c:621 dentry_kill fs/dcache.c:745 [inline] dput+0x64d/0xdb0 fs/dcache.c:913 lookup_fast+0x3d1/0x6d0 fs/namei.c:1667 walk_component+0xcf/0x6a0 fs/namei.c:2010 link_path_walk.part.0+0x7ef/0xf70 fs/namei.c:2341 link_path_walk fs/namei.c:2266 [inline] path_openat+0x260/0x2910 fs/namei.c:3649 do_filp_open+0x1aa/0x400 fs/namei.c:3680 do_sys_openat2+0x16d/0x4c0 fs/open.c:1278 do_sys_open fs/open.c:1294 [inline] __do_sys_openat fs/open.c:1310 [inline] __se_sys_openat fs/open.c:1305 [inline] __x64_sys_openat+0x13f/0x1f0 fs/open.c:1305 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x46/0xb0 The buggy address belongs to the object at ffff888032508bc0 which belongs to the cache dentry of size 312 The buggy address is located 104 bytes inside of 312-byte region [ffff888032508bc0, ffff888032508cf8) The buggy address belongs to the physical page: page:ffffea0000c94200 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x32508 head:ffffea0000c94200 order:1 compound_mapcount:0 compound_pincount:0 memcg:ffff88807d2d5c01 flags: 0xfff00000010200(slab|head|node=0|zone=1|lastcpupid=0x7ff) raw: 00fff00000010200 ffffea0000ce5e00 dead000000000003 ffff888140007640 raw: 0000000000000000 0000000000150015 00000001ffffffff ffff88807d2d5c01 page dumped because: kasan: bad access detected page_owner tracks the page as allocated page last allocated via order 1, migratetype Reclaimable, gfp_mask 0x1d20d0(__GFP_IO|__GFP_FS|__GFP_NOWARN|__GFP_NORETRY|__GFP_COMP|__GFP_NOMEMALLOC|__GFP_HARDWALL|__GFP_RECLAIMABLE), pid 8287, tgid 8287 (syz-executor.1), ts 330845290847, free_ts 326432254705 prep_new_page mm/page_alloc.c:2456 [inline] get_page_from_freelist+0x1290/0x3b70 mm/page_alloc.c:4198 __alloc_pages+0x1c7/0x510 mm/page_alloc.c:5426 alloc_pages+0x1aa/0x310 mm/mempolicy.c:2272 alloc_slab_page mm/slub.c:1824 [inline] allocate_slab+0x26c/0x3c0 mm/slub.c:1969 new_slab mm/slub.c:2029 [inline] ___slab_alloc+0x9c4/0xe20 mm/slub.c:3031 __slab_alloc.constprop.0+0x4d/0xa0 mm/slub.c:3118 slab_alloc_node mm/slub.c:3209 [inline] slab_alloc mm/slub.c:3251 [inline] __kmem_cache_alloc_lru mm/slub.c:3258 [inline] kmem_cache_alloc_lru+0x504/0x720 mm/slub.c:3275 __d_alloc+0x32/0x960 fs/dcache.c:1769 d_alloc+0x4a/0x230 fs/dcache.c:1849 __lookup_hash+0xc8/0x180 fs/namei.c:1598 filename_create+0x1d6/0x4a0 fs/namei.c:3747 do_symlinkat+0xc4/0x2e0 fs/namei.c:4360 __do_sys_symlinkat fs/namei.c:4387 [inline] __se_sys_symlinkat fs/namei.c:4384 [inline] __x64_sys_symlinkat+0x93/0xc0 fs/namei.c:4384 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x46/0xb0 page last free stack trace: reset_page_owner include/linux/page_owner.h:24 [inline] free_pages_prepare mm/page_alloc.c:1371 [inline] free_pcp_prepare+0x549/0xd20 mm/page_alloc.c:1421 free_unref_page_prepare mm/page_alloc.c:3343 [inline] free_unref_page+0x19/0x6a0 mm/page_alloc.c:3438 qlink_free mm/kasan/quarantine.c:168 [inline] qlist_free_all+0x6a/0x170 mm/kasan/quarantine.c:187 kasan_quarantine_reduce+0x180/0x200 mm/kasan/quarantine.c:294 __kasan_slab_alloc+0xa2/0xc0 mm/kasan/common.c:446 kasan_slab_alloc include/linux/kasan.h:224 [inline] slab_post_alloc_hook mm/slab.h:750 [inline] slab_alloc_node mm/slub.c:3243 [inline] kmem_cache_alloc_node+0x255/0x3f0 mm/slub.c:3293 __alloc_skb+0x215/0x340 net/core/skbuff.c:414 alloc_skb include/linux/skbuff.h:1426 [inline] nlmsg_new include/net/netlink.h:953 [inline] netlink_ack+0x1f0/0xa80 net/netlink/af_netlink.c:2436 netlink_rcv_skb+0x33d/0x420 net/netlink/af_netlink.c:2507 netlink_unicast_kernel net/netlink/af_netlink.c:1319 [inline] netlink_unicast+0x543/0x7f0 net/netlink/af_netlink.c:1345 netlink_sendmsg+0x917/0xe10 net/netlink/af_netlink.c:1921 sock_sendmsg_nosec net/socket.c:714 [inline] sock_sendmsg+0xcf/0x120 net/socket.c:734 ____sys_sendmsg+0x6eb/0x810 net/socket.c:2488 ___sys_sendmsg+0xf3/0x170 net/socket.c:2542 __sys_sendmsg net/socket.c:2571 [inline] __do_sys_sendmsg net/socket.c:2580 [inline] __se_sys_sendmsg net/socket.c:2578 [inline] __x64_sys_sendmsg+0x132/0x220 net/socket.c:2578 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80 Memory state around the buggy address: ffff888032508b00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ffff888032508b80: fc fc fc fc fc fc fc fc fa fb fb fb fb fb fb fb >ffff888032508c00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ^ ffff888032508c80: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fc ffff888032508d00: fc fc fc fc fc fc fc 00 00 00 00 00 00 00 00 00 ==================================================================