====================================== | xx__-> [ 71.365883][ T1183] ================================================================== | [ 71.366135][ T1183] BUG: KASAN: slab-out-of-bounds in tcp_v6_send_response (./include/linux/instrumented.h:82 ./include/asm-generic/bitops/instrumented-non-atomic.h:141 ./include/net/inet_sock.h:411 net/ipv6/tcp_ipv6.c:983) | [ 71.366350][ T1183] Read of size 8 at addr ff110000110ce570 by task packetdrill/1183 | [ 71.366548][ T1183] [ 71.366623][ T1183] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 71.366625][ T1183] Call Trace: [ 71.366627][ T1183] [ 71.366628][ T1183] dump_stack_lvl (lib/dump_stack.c:94 lib/dump_stack.c:120) [ 71.366633][ T1183] print_address_description.constprop.0 (mm/kasan/report.c:378) [ 71.366638][ T1183] print_report (mm/kasan/report.c:482) [ 71.366639][ T1183] ? __virt_addr_valid (./include/linux/rcupdate.h:948 ./include/linux/mmzone.h:2276 arch/x86/mm/physaddr.c:54) [ 71.366642][ T1183] ? __virt_addr_valid (./include/linux/rcupdate.h:974 (discriminator 1) ./include/linux/mmzone.h:2286 (discriminator 1) arch/x86/mm/physaddr.c:54 (discriminator 1)) [ 71.366644][ T1183] kasan_report (mm/kasan/report.c:595) [ 71.366647][ T1183] ? tcp_v6_send_response (./include/linux/instrumented.h:82 ./include/asm-generic/bitops/instrumented-non-atomic.h:141 ./include/net/inet_sock.h:411 net/ipv6/tcp_ipv6.c:983) [ 71.366649][ T1183] ? tcp_v6_send_response (./include/linux/instrumented.h:82 ./include/asm-generic/bitops/instrumented-non-atomic.h:141 ./include/net/inet_sock.h:411 net/ipv6/tcp_ipv6.c:983) [ 71.366651][ T1183] kasan_check_range (mm/kasan/generic.c:186 mm/kasan/generic.c:200) [ 71.366653][ T1183] tcp_v6_send_response (./include/linux/instrumented.h:82 ./include/asm-generic/bitops/instrumented-non-atomic.h:141 ./include/net/inet_sock.h:411 net/ipv6/tcp_ipv6.c:983) [ 71.366654][ T1183] ? __mod_timer (kernel/time/timer.c:1139 (discriminator 3)) [ 71.366659][ T1183] ? __xfrm_policy_check2.constprop.0 (net/ipv4/ip_input.c:414 (discriminator 5)) [ 71.366660][ T1183] ? __lock_acquire (kernel/locking/lockdep.c:5254) [ 71.366664][ T1183] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5554) [ 71.366666][ T1183] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3)) [ 71.366669][ T1183] tcp_v6_rcv (net/ipv6/tcp_ipv6.c:1149 net/ipv6/tcp_ipv6.c:1201 net/ipv6/tcp_ipv6.c:1993) [ 71.366673][ T1183] ? tcp_v6_syn_recv_sock (./include/linux/skbuff.h:1141 ./include/net/sock.h:1602 ./include/net/sock.h:2498 net/ipv6/tcp_ipv6.c:1526) [ 71.366675][ T1183] ? mark_usage (kernel/locking/lockdep.c:4690) [ 71.366678][ T1183] ip6_protocol_deliver_rcu (net/ipv6/ip6_input.c:479) [ 71.366685][ T1183] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3)) [ 71.366688][ T1183] ip6_input (net/ipv6/ip6_input.c:534 ./include/linux/netfilter.h:429 net/ipv6/ip6_input.c:545) [ 71.366689][ T1183] __netif_receive_skb_one_core (net/core/dev.c:6264) [ 71.366693][ T1183] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5908 (discriminator 2)) [ 71.366695][ T1183] ? netif_receive_skb_internal (./include/linux/rcupdate.h:309 (discriminator 2) ./include/linux/rcupdate.h:849 (discriminator 2) net/core/dev.c:6450 (discriminator 2)) [ 71.366697][ T1183] ? __netif_receive_skb_list_core (net/core/dev.c:6310) [ 71.366699][ T1183] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3)) [ 71.366700][ T1183] ? ktime_get_with_offset (./include/linux/seqlock.h:75 (discriminator 6) kernel/time/timekeeping.c:1046 (discriminator 6)) [ 71.366703][ T1183] netif_receive_skb_internal (net/core/dev.c:6463) [ 71.366705][ T1183] ? __netif_receive_skb (./include/linux/skbuff.h:1141) [ 71.366707][ T1183] ? __might_fault (mm/memory.c:7482 (discriminator 5)) [ 71.366710][ T1183] ? _copy_from_iter (./include/linux/instrumented.h:146 lib/iov_iter.c:66 ./include/linux/iov_iter.h:52 ./include/linux/iov_iter.h:304 ./include/linux/iov_iter.h:330 lib/iov_iter.c:261 lib/iov_iter.c:272) [ 71.366715][ T1183] netif_receive_skb (net/core/dev.c:6522) [ 71.366716][ T1183] ? __local_bh_disable_ip (./include/linux/ftrace.h:1177 kernel/softirq.c:418) [ 71.366720][ T1183] tun_rx_batched.isra.0 (drivers/net/tun.c:1595) [ 71.366723][ T1183] ? mark_usage (kernel/locking/lockdep.c:4690) [ 71.366724][ T1183] ? __lock_acquire (kernel/locking/lockdep.c:5254) [ 71.366726][ T1183] ? tun_setup (drivers/net/tun.c:2410) [ 71.366728][ T1183] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3)) [ 71.366730][ T1183] ? lock_acquire (./include/trace/events/lock.h:23 (discriminator 22) kernel/locking/lockdep.c:5871 (discriminator 22)) [ 71.366732][ T1183] tun_get_user (drivers/net/tun.c:2045) [ 71.366735][ T1183] ? do_syscall_64 (arch/x86/entry/syscall_64.c:61 arch/x86/entry/syscall_64.c:84) [ 71.366738][ T1183] ? entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121) [ 71.366740][ T1183] ? tun_build_skb (./arch/x86/include/asm/atomic.h:23) [ 71.366742][ T1183] ? mark_usage (kernel/locking/lockdep.c:4690) [ 71.366743][ T1183] ? ref_tracker_free (./include/linux/instrumented.h:112 ./include/linux/atomic/atomic-instrumented.h:400 ./include/linux/refcount.h:455 ./include/linux/refcount.h:476 lib/ref_tracker.c:298) [ 71.366746][ T1183] ? ref_tracker_dir_print (lib/ref_tracker.c:200) [ 71.366749][ T1183] ? find_held_lock (kernel/locking/lockdep.c:5367) [ 71.366751][ T1183] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5554) [ 71.366753][ T1183] ? tun_get (./include/linux/rcupdate.h:319 (discriminator 2) ./include/linux/rcupdate.h:880 (discriminator 2) drivers/net/tun.c:831 (discriminator 2)) [ 71.366755][ T1183] tun_chr_write_iter (drivers/net/tun.c:2091) [ 71.366757][ T1183] do_iter_readv_writev (fs/read_write.c:828) [ 71.366759][ T1183] ? kasan_quarantine_put (mm/kasan/quarantine.c:234 (discriminator 6)) [ 71.366761][ T1183] ? fsnotify (fs/notify/fsnotify.c:548 (discriminator 3)) [ 71.366763][ T1183] ? ref_tracker_free (./include/linux/instrumented.h:112 ./include/linux/atomic/atomic-instrumented.h:400 ./include/linux/refcount.h:455 ./include/linux/refcount.h:476 lib/ref_tracker.c:298) [ 71.366765][ T1183] ? new_sync_write (./include/linux/ioprio.h:41) [ 71.366768][ T1183] ? import_iovec (lib/iov_iter.c:1440 (discriminator 1)) [ 71.366770][ T1183] vfs_writev (fs/read_write.c:1058) [ 71.366771][ T1183] ? tun_get (./include/linux/rcupdate.h:319 (discriminator 2) ./include/linux/rcupdate.h:880 (discriminator 2) drivers/net/tun.c:831 (discriminator 2)) [ 71.366773][ T1183] ? vfs_iocb_iter_write (fs/read_write.c:41) [ 71.366775][ T1183] ? tun_recvmsg (./include/linux/netdevice.h:4505 (discriminator 31)) [ 71.366776][ T1183] ? __lock_acquire (kernel/locking/lockdep.c:5254) [ 71.366778][ T1183] ? new_sync_read (./include/linux/fs.h:2185 (discriminator 1) fs/read_write.c:489 (discriminator 1)) [ 71.366780][ T1183] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5908 (discriminator 2)) [ 71.366782][ T1183] ? find_held_lock (kernel/locking/lockdep.c:5367) [ 71.366785][ T1183] ? __fget_files (./include/linux/rcupdate.h:882 fs/file.c:1100) [ 71.366788][ T1183] ? do_writev (fs/read_write.c:1104) [ 71.366789][ T1183] do_writev (fs/read_write.c:1104) [ 71.366791][ T1183] ? vfs_writev (fs/read_write.c:41) [ 71.366792][ T1183] ? fput (./include/linux/preempt.h:500 ./include/linux/file_ref.h:150 fs/file_table.c:588) [ 71.366794][ T1183] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3)) [ 71.366796][ T1183] do_syscall_64 (arch/x86/entry/syscall_64.c:61 arch/x86/entry/syscall_64.c:84) [ 71.366797][ T1183] ? irq_exit_rcu (kernel/softirq.c:786) [ 71.366799][ T1183] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121) [ 71.366801][ T1183] RIP: 0033:0x4c42a2 [ 71.366804][ T1183] Code: 08 0f 85 31 ea ff ff 49 89 fb 48 89 f0 48 89 d7 48 89 ce 4c 89 c2 4d 89 ca 4c 8b 44 24 08 4c 8b 4c 24 10 4c 89 5c 24 08 0f 05 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 f3 0f 1e fa 55 48 89 e5 All code ======== 0: 08 0f or %cl,(%rdi) 2: 85 31 test %esi,(%rcx) 4: ea (bad) 5: ff (bad) 6: ff 49 89 decl -0x77(%rcx) 9: fb sti a: 48 89 f0 mov %rsi,%rax d: 48 89 d7 mov %rdx,%rdi 10: 48 89 ce mov %rcx,%rsi 13: 4c 89 c2 mov %r8,%rdx 16: 4d 89 ca mov %r9,%r10 19: 4c 8b 44 24 08 mov 0x8(%rsp),%r8 1e: 4c 8b 4c 24 10 mov 0x10(%rsp),%r9 23: 4c 89 5c 24 08 mov %r11,0x8(%rsp) 28: 0f 05 syscall 2a:* c3 ret <-- trapping instruction 2b: 66 2e 0f 1f 84 00 00 cs nopw 0x0(%rax,%rax,1) 32: 00 00 00 35: 0f 1f 00 nopl (%rax) 38: f3 0f 1e fa endbr64 3c: 55 push %rbp 3d: 48 89 e5 mov %rsp,%rbp Code starting with the faulting instruction =========================================== 0: c3 ret 1: 66 2e 0f 1f 84 00 00 cs nopw 0x0(%rax,%rax,1) 8: 00 00 00 b: 0f 1f 00 nopl (%rax) e: f3 0f 1e fa endbr64 12: 55 push %rbp 13: 48 89 e5 mov %rsp,%rbp [ 71.366806][ T1183] RSP: 002b:00007ffdf0bd9af8 EFLAGS: 00000246 ORIG_RAX: 0000000000000014 [ 71.366810][ T1183] RAX: ffffffffffffffda RBX: 0000000000000010 RCX: 00000000004c42a2 [ 71.366811][ T1183] RDX: 0000000000000002 RSI: 00007ffdf0bd9b80 RDI: 0000000000000005 [ 71.366812][ T1183] RBP: 00007ffdf0bd9b20 R08: 0000000000000000 R09: 0000000000000000 [ 71.366813][ T1183] R10: 0000000000000000 R11: 0000000000000246 R12: 00007ffdf0bda158 Finger prints: print_report:kasan_report:kasan_check_range:tcp_v6_send_response:tcp_v6_rcv