====================================== | xx__-> [ 202.996308][ T2937] ================================================================== | [ 202.996574][ T2937] 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) | [ 202.996776][ T2937] Read of size 8 at addr ff1100000fcd0570 by task packetdrill/2937 | [ 202.996977][ T2937] [ 202.997048][ T2937] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 202.997050][ T2937] Call Trace: [ 202.997051][ T2937] [ 202.997052][ T2937] dump_stack_lvl (lib/dump_stack.c:94 lib/dump_stack.c:120) [ 202.997058][ T2937] print_address_description.constprop.0 (mm/kasan/report.c:378) [ 202.997062][ T2937] print_report (mm/kasan/report.c:482) [ 202.997064][ T2937] ? __virt_addr_valid (./include/linux/rcupdate.h:948 ./include/linux/mmzone.h:2276 arch/x86/mm/physaddr.c:54) [ 202.997067][ T2937] ? __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)) [ 202.997069][ T2937] kasan_report (mm/kasan/report.c:595) [ 202.997071][ T2937] ? 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) [ 202.997073][ T2937] ? 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) [ 202.997076][ T2937] kasan_check_range (mm/kasan/generic.c:186 mm/kasan/generic.c:200) [ 202.997078][ T2937] 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) [ 202.997079][ T2937] ? __mod_timer (kernel/time/timer.c:803 kernel/time/timer.c:848 kernel/time/timer.c:1025) [ 202.997083][ T2937] ? __xfrm_policy_check2.constprop.0 (net/ipv4/ip_input.c:414 (discriminator 5)) [ 202.997085][ T2937] ? __lock_acquire (kernel/locking/lockdep.c:5254) [ 202.997089][ T2937] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5554) [ 202.997090][ T2937] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3)) [ 202.997093][ T2937] tcp_v6_rcv (net/ipv6/tcp_ipv6.c:1149 net/ipv6/tcp_ipv6.c:1201 net/ipv6/tcp_ipv6.c:1993) [ 202.997097][ T2937] ? 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) [ 202.997099][ T2937] ? mark_usage (kernel/locking/lockdep.c:4690) [ 202.997102][ T2937] ip6_protocol_deliver_rcu (net/ipv6/ip6_input.c:479) [ 202.997106][ T2937] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3)) [ 202.997108][ T2937] ip6_input (net/ipv6/ip6_input.c:534 ./include/linux/netfilter.h:429 net/ipv6/ip6_input.c:545) [ 202.997110][ T2937] __netif_receive_skb_one_core (net/core/dev.c:6264) [ 202.997113][ T2937] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5908 (discriminator 2)) [ 202.997115][ T2937] ? 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)) [ 202.997117][ T2937] ? __netif_receive_skb_list_core (net/core/dev.c:6310) [ 202.997119][ T2937] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3)) [ 202.997120][ T2937] ? ktime_get_with_offset (./include/linux/seqlock.h:75 (discriminator 6) kernel/time/timekeeping.c:1046 (discriminator 6)) [ 202.997123][ T2937] netif_receive_skb_internal (net/core/dev.c:6463) [ 202.997125][ T2937] ? __netif_receive_skb (./include/linux/skbuff.h:1141) [ 202.997127][ T2937] ? __might_fault (mm/memory.c:7482 (discriminator 5)) [ 202.997130][ T2937] ? _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) [ 202.997135][ T2937] netif_receive_skb (net/core/dev.c:6522) [ 202.997137][ T2937] ? __local_bh_disable_ip (./include/linux/ftrace.h:1177 kernel/softirq.c:418) [ 202.997140][ T2937] tun_rx_batched.isra.0 (drivers/net/tun.c:1595) [ 202.997143][ T2937] ? mark_usage (kernel/locking/lockdep.c:4690) [ 202.997144][ T2937] ? __lock_acquire (kernel/locking/lockdep.c:5254) [ 202.997146][ T2937] ? tun_setup (drivers/net/tun.c:2410) [ 202.997149][ T2937] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3)) [ 202.997150][ T2937] ? lock_acquire (./include/trace/events/lock.h:23 (discriminator 22) kernel/locking/lockdep.c:5871 (discriminator 22)) [ 202.997152][ T2937] tun_get_user (drivers/net/tun.c:2045) [ 202.997155][ T2937] ? do_syscall_64 (arch/x86/entry/syscall_64.c:61 arch/x86/entry/syscall_64.c:84) [ 202.997158][ T2937] ? entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121) [ 202.997160][ T2937] ? tun_build_skb (./arch/x86/include/asm/atomic.h:23) [ 202.997162][ T2937] ? mark_usage (kernel/locking/lockdep.c:4690) [ 202.997163][ T2937] ? 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) [ 202.997166][ T2937] ? ref_tracker_dir_print (lib/ref_tracker.c:200) [ 202.997169][ T2937] ? find_held_lock (kernel/locking/lockdep.c:5367) [ 202.997171][ T2937] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5554) [ 202.997173][ T2937] ? tun_get (./include/linux/rcupdate.h:319 (discriminator 2) ./include/linux/rcupdate.h:880 (discriminator 2) drivers/net/tun.c:831 (discriminator 2)) [ 202.997175][ T2937] tun_chr_write_iter (drivers/net/tun.c:2091) [ 202.997177][ T2937] do_iter_readv_writev (fs/read_write.c:828) [ 202.997179][ T2937] ? kasan_quarantine_put (mm/kasan/quarantine.c:234 (discriminator 6)) [ 202.997180][ T2937] ? fsnotify (fs/notify/fsnotify.c:548 (discriminator 3)) [ 202.997183][ T2937] ? 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) [ 202.997185][ T2937] ? new_sync_write (./include/linux/ioprio.h:41) [ 202.997188][ T2937] ? import_iovec (lib/iov_iter.c:1440 (discriminator 1)) [ 202.997190][ T2937] vfs_writev (fs/read_write.c:1058) [ 202.997191][ T2937] ? tun_get (./include/linux/rcupdate.h:319 (discriminator 2) ./include/linux/rcupdate.h:880 (discriminator 2) drivers/net/tun.c:831 (discriminator 2)) [ 202.997193][ T2937] ? vfs_iocb_iter_write (fs/read_write.c:41) [ 202.997194][ T2937] ? tun_recvmsg (./include/linux/netdevice.h:4505 (discriminator 31)) [ 202.997196][ T2937] ? __lock_acquire (kernel/locking/lockdep.c:5254) [ 202.997198][ T2937] ? new_sync_read (./include/linux/fs.h:2185 (discriminator 1) fs/read_write.c:489 (discriminator 1)) [ 202.997200][ T2937] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5908 (discriminator 2)) [ 202.997202][ T2937] ? find_held_lock (kernel/locking/lockdep.c:5367) [ 202.997204][ T2937] ? __fget_files (./include/linux/rcupdate.h:882 fs/file.c:1100) [ 202.997207][ T2937] ? do_writev (fs/read_write.c:1104) [ 202.997209][ T2937] do_writev (fs/read_write.c:1104) [ 202.997210][ T2937] ? vfs_writev (fs/read_write.c:41) [ 202.997211][ T2937] ? fput (./include/linux/preempt.h:500 ./include/linux/file_ref.h:150 fs/file_table.c:588) [ 202.997213][ T2937] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3)) [ 202.997215][ T2937] do_syscall_64 (arch/x86/entry/syscall_64.c:61 arch/x86/entry/syscall_64.c:84) [ 202.997217][ T2937] ? irq_exit_rcu (kernel/softirq.c:786) [ 202.997219][ T2937] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121) [ 202.997220][ T2937] RIP: 0033:0x4c42a2 [ 202.997223][ T2937] 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 [ 202.997225][ T2937] RSP: 002b:00007ffe5fd659c8 EFLAGS: 00000246 ORIG_RAX: 0000000000000014 [ 202.997230][ T2937] RAX: ffffffffffffffda RBX: 0000000000000010 RCX: 00000000004c42a2 [ 202.997231][ T2937] RDX: 0000000000000002 RSI: 00007ffe5fd65a50 RDI: 0000000000000005 [ 202.997232][ T2937] RBP: 00007ffe5fd659f0 R08: 0000000000000000 R09: 0000000000000000 [ 202.997233][ T2937] R10: 0000000000000000 R11: 0000000000000246 R12: 00007ffe5fd66028 Finger prints: print_report:kasan_report:kasan_check_range:tcp_v6_send_response:tcp_v6_rcv