================================================================== BUG: KASAN: use-after-free in tcp_retransmit_timer+0x2ea2/0x3320 net/ipv4/tcp_timer.c:511 Read of size 8 at addr ffff888072b8c298 by task kauditd/37 CPU: 1 PID: 37 Comm: kauditd Not tainted 5.15.0-rc7-syzkaller #0 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.14.0-2 04/01/2014 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+0x6c/0x2d6 mm/kasan/report.c:256 __kasan_report mm/kasan/report.c:442 [inline] kasan_report.cold+0x83/0xdf mm/kasan/report.c:459 tcp_retransmit_timer+0x2ea2/0x3320 net/ipv4/tcp_timer.c:511 tcp_write_timer_handler+0x595/0xad0 net/ipv4/tcp_timer.c:622 tcp_write_timer+0xa2/0x2b0 net/ipv4/tcp_timer.c:642 call_timer_fn+0x1a5/0x6b0 kernel/time/timer.c:1421 expire_timers kernel/time/timer.c:1466 [inline] __run_timers.part.0+0x675/0xa20 kernel/time/timer.c:1734 __run_timers kernel/time/timer.c:1715 [inline] run_timer_softirq+0xb3/0x1d0 kernel/time/timer.c:1747 __do_softirq+0x29b/0x9c2 kernel/softirq.c:558 invoke_softirq kernel/softirq.c:432 [inline] __irq_exit_rcu+0x123/0x180 kernel/softirq.c:636 irq_exit_rcu+0x5/0x20 kernel/softirq.c:648 sysvec_apic_timer_interrupt+0x93/0xc0 arch/x86/kernel/apic/apic.c:1097 asm_sysvec_apic_timer_interrupt+0x12/0x20 arch/x86/include/asm/idtentry.h:638 RIP: 0010:preempt_count arch/x86/include/asm/preempt.h:27 [inline] RIP: 0010:check_kcov_mode kernel/kcov.c:163 [inline] RIP: 0010:__sanitizer_cov_trace_pc+0x0/0x60 kernel/kcov.c:197 Code: 01 f0 4d 89 03 e9 63 fd ff ff b9 ff ff ff ff ba 08 00 00 00 4d 8b 03 48 0f bd ca 49 8b 45 00 48 63 c9 e9 64 ff ff ff 0f 1f 00 <65> 8b 05 59 cc 8b 7e 89 c1 48 8b 34 24 81 e1 00 01 00 00 65 48 8b RSP: 0018:ffffc90000857af8 EFLAGS: 00000293 RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000 RDX: ffff888012bd6000 RSI: ffffffff815d98fc RDI: 0000000000000003 RBP: 0000000000000000 R08: 0000000000000000 R09: ffffffff8fd059e7 R10: ffffffff815d98f2 R11: 0000000000000000 R12: ffffffff84ca3cd0 R13: 0000000000000200 R14: ffffc90000857b58 R15: dffffc0000000000 console_unlock+0x6c2/0xb70 kernel/printk/printk.c:2715 vprintk_emit+0x198/0x4f0 kernel/printk/printk.c:2244 vprintk+0x80/0x90 kernel/printk/printk_safe.c:50 _printk+0xba/0xed kernel/printk/printk.c:2265 kauditd_printk_skb kernel/audit.c:538 [inline] kauditd_hold_skb.cold+0x41/0x50 kernel/audit.c:571 kauditd_send_queue+0x19d/0x210 kernel/audit.c:734 kauditd_thread+0x766/0xba0 kernel/audit.c:860 kthread+0x3e5/0x4d0 kernel/kthread.c:319 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295 Allocated by task 3724: kasan_save_stack+0x1b/0x40 mm/kasan/common.c:38 kasan_set_track mm/kasan/common.c:46 [inline] set_alloc_info mm/kasan/common.c:434 [inline] __kasan_slab_alloc+0x80/0xa0 mm/kasan/common.c:467 kasan_slab_alloc include/linux/kasan.h:254 [inline] slab_post_alloc_hook mm/slab.h:519 [inline] slab_alloc mm/slab.c:3323 [inline] kmem_cache_alloc+0x25f/0x540 mm/slab.c:3507 kmem_cache_zalloc include/linux/slab.h:711 [inline] net_alloc net/core/net_namespace.c:402 [inline] copy_net_ns+0x125/0x760 net/core/net_namespace.c:457 create_new_namespaces+0x3f6/0xb20 kernel/nsproxy.c:110 unshare_nsproxy_namespaces+0xc1/0x1f0 kernel/nsproxy.c:226 ksys_unshare+0x445/0x920 kernel/fork.c:3077 __do_sys_unshare kernel/fork.c:3151 [inline] __se_sys_unshare kernel/fork.c:3149 [inline] __x64_sys_unshare+0x2d/0x40 kernel/fork.c:3149 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+0x44/0xae The buggy address belongs to the object at ffff888072b8c040 which belongs to the cache net_namespace of size 6464 The buggy address is located 600 bytes inside of 6464-byte region [ffff888072b8c040, ffff888072b8d980) The buggy address belongs to the page: page:ffffea0001cae300 refcount:1 mapcount:0 mapping:0000000000000000 index:0xffff888072b8c040 pfn:0x72b8c head:ffffea0001cae300 order:1 compound_mapcount:0 flags: 0x4fff00000010200(slab|head|node=1|zone=1|lastcpupid=0x7ff) raw: 04fff00000010200 ffffea000123d988 ffff8880415e1060 ffff888011999b00 raw: ffff888072b8c040 ffff888072b8c040 0000000100000000 0000000000000000 page dumped because: kasan: bad access detected page_owner tracks the page as allocated page last allocated via order 1, migratetype Unmovable, gfp_mask 0x40cc0(GFP_KERNEL|__GFP_COMP), pid 3724, ts 292845751071, free_ts 0 prep_new_page mm/page_alloc.c:2424 [inline] get_page_from_freelist+0xa72/0x2f80 mm/page_alloc.c:4153 __alloc_pages+0x1b2/0x500 mm/page_alloc.c:5375 __alloc_pages_node include/linux/gfp.h:570 [inline] kmem_getpages mm/slab.c:1377 [inline] cache_grow_begin+0x75/0x460 mm/slab.c:2593 fallback_alloc+0x1e4/0x2e0 mm/slab.c:3140 __do_cache_alloc mm/slab.c:3282 [inline] slab_alloc mm/slab.c:3316 [inline] kmem_cache_alloc+0x388/0x540 mm/slab.c:3507 kmem_cache_zalloc include/linux/slab.h:711 [inline] net_alloc net/core/net_namespace.c:402 [inline] copy_net_ns+0x125/0x760 net/core/net_namespace.c:457 create_new_namespaces+0x3f6/0xb20 kernel/nsproxy.c:110 unshare_nsproxy_namespaces+0xc1/0x1f0 kernel/nsproxy.c:226 ksys_unshare+0x445/0x920 kernel/fork.c:3077 __do_sys_unshare kernel/fork.c:3151 [inline] __se_sys_unshare kernel/fork.c:3149 [inline] __x64_sys_unshare+0x2d/0x40 kernel/fork.c:3149 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+0x44/0xae page_owner free stack trace missing Memory state around the buggy address: ffff888072b8c180: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ffff888072b8c200: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb >ffff888072b8c280: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ^ ffff888072b8c300: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ffff888072b8c380: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ================================================================== ---------------- Code disassembly (best guess): 0: 01 f0 add %esi,%eax 2: 4d 89 03 mov %r8,(%r11) 5: e9 63 fd ff ff jmpq 0xfffffd6d a: b9 ff ff ff ff mov $0xffffffff,%ecx f: ba 08 00 00 00 mov $0x8,%edx 14: 4d 8b 03 mov (%r11),%r8 17: 48 0f bd ca bsr %rdx,%rcx 1b: 49 8b 45 00 mov 0x0(%r13),%rax 1f: 48 63 c9 movslq %ecx,%rcx 22: e9 64 ff ff ff jmpq 0xffffff8b 27: 0f 1f 00 nopl (%rax) * 2a: 65 8b 05 59 cc 8b 7e mov %gs:0x7e8bcc59(%rip),%eax # 0x7e8bcc8a <-- trapping instruction 31: 89 c1 mov %eax,%ecx 33: 48 8b 34 24 mov (%rsp),%rsi 37: 81 e1 00 01 00 00 and $0x100,%ecx 3d: 65 gs 3e: 48 rex.W 3f: 8b .byte 0x8b