====================================== | [ 2313.809736][T20348] ================================================================== | [2313.810139][T20348] BUG: KASAN: slab-use-after-free in tcp_prune_ofo_queue (net/ipv4/tcp_input.c:4896 net/ipv4/tcp_input.c:5520) | [ 2313.810446][T20348] Read of size 4 at addr ffff8880134729d8 by task socat/20348 | [ 2313.810747][T20348] [ 2313.810882][T20348] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 2313.810889][T20348] Call Trace: [ 2313.810893][T20348] [2313.810896][T20348] dump_stack_lvl (lib/dump_stack.c:123) [2313.810909][T20348] print_address_description.constprop.0 (mm/kasan/report.c:409) [2313.810929][T20348] ? tcp_prune_ofo_queue (net/ipv4/tcp_input.c:4896 net/ipv4/tcp_input.c:5520) [2313.810932][T20348] print_report (mm/kasan/report.c:522) [2313.810935][T20348] ? tcp_prune_ofo_queue (net/ipv4/tcp_input.c:4896 net/ipv4/tcp_input.c:5520) [2313.810938][T20348] ? kasan_addr_to_slab (./include/linux/mm.h:1178 mm/kasan/../slab.h:211 mm/kasan/common.c:38) [2313.810945][T20348] ? tcp_prune_ofo_queue (net/ipv4/tcp_input.c:4896 net/ipv4/tcp_input.c:5520) [2313.810948][T20348] kasan_report (mm/kasan/report.c:636) [2313.810951][T20348] ? tcp_prune_ofo_queue (net/ipv4/tcp_input.c:4896 net/ipv4/tcp_input.c:5520) [2313.810957][T20348] tcp_prune_ofo_queue (net/ipv4/tcp_input.c:4896 net/ipv4/tcp_input.c:5520) [2313.810962][T20348] tcp_try_rmem_schedule (./include/linux/instrumented.h:68 ./include/linux/atomic/atomic-instrumented.h:32 net/ipv4/tcp_input.c:4896 net/ipv4/tcp_input.c:5577 net/ipv4/tcp_input.c:4907) [2313.810969][T20348] tcp_data_queue (net/ipv4/tcp_input.c:5192) [2313.810975][T20348] ? __pfx_tcp_data_queue (net/ipv4/tcp_input.c:5145) [2313.810979][T20348] ? kvm_clock_get_cycles (./arch/x86/include/asm/preempt.h:95 arch/x86/kernel/kvmclock.c:80 arch/x86/kernel/kvmclock.c:86) [2313.810993][T20348] ? ktime_get (kernel/time/timekeeping.c:251 (discriminator 4) kernel/time/timekeeping.c:360 (discriminator 4) kernel/time/timekeeping.c:778 (discriminator 4)) [2313.811005][T20348] tcp_rcv_established (./include/linux/skbuff.h:2148 ./include/net/tcp.h:2089 ./include/net/tcp.h:2170 net/ipv4/tcp_input.c:5662 net/ipv4/tcp_input.c:6210) [2313.811011][T20348] ? find_held_lock (kernel/locking/lockdep.c:5353) [2313.811024][T20348] ? __pfx_tcp_rcv_established (net/ipv4/tcp_input.c:6027) [2313.811028][T20348] ? ipv4_dst_check (./include/linux/rcupdate.h:341 ./include/linux/rcupdate.h:871 net/ipv4/route.c:401 net/ipv4/route.c:1216) [2313.811037][T20348] tcp_v4_do_rcv (net/ipv4/tcp_ipv4.c:1972) [2313.811042][T20348] ? lockdep_hardirqs_on (kernel/locking/lockdep.c:4475) [2313.811049][T20348] __release_sock (./include/net/sock.h:1148 net/core/sock.c:3188) [2313.811063][T20348] release_sock (net/core/sock.c:3744) [2313.811066][T20348] tcp_sendmsg (net/ipv4/tcp.c:1397) [2313.811074][T20348] sock_write_iter (net/socket.c:714 net/socket.c:729 net/socket.c:1179) [2313.811083][T20348] ? __pfx___unix_dgram_recvmsg (net/unix/af_unix.c:2554) [2313.811089][T20348] ? backing_file_read_iter (fs/backing-file.c:203) [2313.811106][T20348] ? __pfx_sock_write_iter (net/socket.c:1163) [2313.811114][T20348] ? rcu_is_watching (./include/linux/context_tracking.h:128 kernel/rcu/tree.c:745) [2313.811125][T20348] vfs_write (fs/read_write.c:593 fs/read_write.c:686) [2313.811133][T20348] ? __pfx___sys_recvfrom (net/socket.c:2255) [2313.811137][T20348] ? ksys_read (./include/linux/file.h:62 ./include/linux/file.h:80 ./include/linux/file.h:85 fs/read_write.c:706) [2313.811140][T20348] ? __lock_release (kernel/locking/lockdep.c:5539) [2313.811146][T20348] ? __pfx_vfs_write (fs/read_write.c:667) [2313.811156][T20348] ksys_write (fs/read_write.c:738) [2313.811159][T20348] ? __pfx_ksys_write (fs/read_write.c:728) [2313.811165][T20348] do_syscall_64 (arch/x86/entry/syscall_64.c:63 arch/x86/entry/syscall_64.c:94) [2313.811173][T20348] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:130) [ 2313.811184][T20348] RIP: 0033:0x7fcf73ef2337 [ 2313.811190][T20348] Code: 0f 00 f7 d8 64 89 02 48 c7 c0 ff ff ff ff eb b7 0f 1f 00 f3 0f 1e fa 64 8b 04 25 18 00 00 00 85 c0 75 10 b8 01 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 51 c3 48 83 ec 28 48 89 54 24 18 48 89 74 24 All code ======== 0: 0f 00 (bad) 2: f7 d8 neg %eax 4: 64 89 02 mov %eax,%fs:(%rdx) 7: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax e: eb b7 jmp 0xffffffffffffffc7 10: 0f 1f 00 nopl (%rax) 13: f3 0f 1e fa endbr64 17: 64 8b 04 25 18 00 00 mov %fs:0x18,%eax 1e: 00 1f: 85 c0 test %eax,%eax 21: 75 10 jne 0x33 23: b8 01 00 00 00 mov $0x1,%eax 28: 0f 05 syscall 2a:* 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax <-- trapping instruction 30: 77 51 ja 0x83 32: c3 ret 33: 48 83 ec 28 sub $0x28,%rsp 37: 48 89 54 24 18 mov %rdx,0x18(%rsp) 3c: 48 rex.W 3d: 89 .byte 0x89 3e: 74 24 je 0x64 Code starting with the faulting instruction =========================================== 0: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax 6: 77 51 ja 0x59 8: c3 ret 9: 48 83 ec 28 sub $0x28,%rsp d: 48 89 54 24 18 mov %rdx,0x18(%rsp) 12: 48 rex.W 13: 89 .byte 0x89 14: 74 24 je 0x3a [ 2313.811194][T20348] RSP: 002b:00007ffd4f924708 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 [ 2313.811201][T20348] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007fcf73ef2337 [ 2313.811204][T20348] RDX: 0000000000002000 RSI: 0000555f11d1a000 RDI: 0000000000000008 [ 2313.811206][T20348] RBP: 0000555f11d1a000 R08: 0000000000002000 R09: 0000000000000000 [ 2313.811208][T20348] R10: 0000000000000040 R11: 0000000000000246 R12: 0000000000000008 Finger prints: print_report:kasan_report:tcp_prune_ofo_queue:tcp_try_rmem_schedule:tcp_data_queue