====================================== | xx__-> [ 9.780822][ T199] ================================================================== | [ 9.781089][ T199] 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) | [ 9.781308][ T199] Read of size 8 at addr ff1100000d1ea570 by task packetdrill/199 | [ 9.781519][ T199] [ 9.781598][ T199] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 9.781600][ T199] Call Trace: [ 9.781601][ T199] [ 9.781603][ T199] dump_stack_lvl (lib/dump_stack.c:94 lib/dump_stack.c:120) [ 9.781608][ T199] print_address_description.constprop.0 (mm/kasan/report.c:378) [ 9.781612][ T199] print_report (mm/kasan/report.c:482) [ 9.781613][ T199] ? __virt_addr_valid (./include/linux/rcupdate.h:948 ./include/linux/mmzone.h:2276 arch/x86/mm/physaddr.c:54) [ 9.781617][ T199] ? __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)) [ 9.781618][ T199] kasan_report (mm/kasan/report.c:595) [ 9.781621][ T199] ? 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) [ 9.781623][ T199] ? 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) [ 9.781625][ T199] kasan_check_range (mm/kasan/generic.c:186 mm/kasan/generic.c:200) [ 9.781628][ T199] 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) [ 9.781629][ T199] ? __mod_timer (kernel/time/timer.c:803 kernel/time/timer.c:848 kernel/time/timer.c:1025) [ 9.781634][ T199] ? __xfrm_policy_check2.constprop.0 (net/ipv4/ip_input.c:414 (discriminator 5)) [ 9.781635][ T199] ? __lock_acquire (kernel/locking/lockdep.c:5254) [ 9.781639][ T199] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5554) [ 9.781641][ T199] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3)) [ 9.781644][ T199] tcp_v6_rcv (net/ipv6/tcp_ipv6.c:1149 net/ipv6/tcp_ipv6.c:1201 net/ipv6/tcp_ipv6.c:1993) [ 9.781648][ T199] ? 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) [ 9.781650][ T199] ? mark_usage (kernel/locking/lockdep.c:4690) [ 9.781653][ T199] ip6_protocol_deliver_rcu (net/ipv6/ip6_input.c:479) [ 9.781657][ T199] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3)) [ 9.781659][ T199] ip6_input (net/ipv6/ip6_input.c:534 ./include/linux/netfilter.h:429 net/ipv6/ip6_input.c:545) [ 9.781661][ T199] __netif_receive_skb_one_core (net/core/dev.c:6264) [ 9.781665][ T199] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5908 (discriminator 2)) [ 9.781667][ T199] ? 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)) [ 9.781669][ T199] ? __netif_receive_skb_list_core (net/core/dev.c:6310) [ 9.781671][ T199] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3)) [ 9.781672][ T199] ? ktime_get_with_offset (./include/linux/seqlock.h:75 (discriminator 6) kernel/time/timekeeping.c:1046 (discriminator 6)) [ 9.781675][ T199] netif_receive_skb_internal (net/core/dev.c:6463) [ 9.781677][ T199] ? __netif_receive_skb (./include/linux/skbuff.h:1141) [ 9.781679][ T199] ? __might_fault (mm/memory.c:7482 (discriminator 5)) [ 9.781682][ T199] ? _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) [ 9.781686][ T199] netif_receive_skb (net/core/dev.c:6522) [ 9.781688][ T199] ? __local_bh_disable_ip (./include/linux/ftrace.h:1177 kernel/softirq.c:418) [ 9.781691][ T199] tun_rx_batched.isra.0 (drivers/net/tun.c:1595) [ 9.781694][ T199] ? mark_usage (kernel/locking/lockdep.c:4690) [ 9.781696][ T199] ? __lock_acquire (kernel/locking/lockdep.c:5254) [ 9.781698][ T199] ? tun_setup (drivers/net/tun.c:2410) [ 9.781700][ T199] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3)) [ 9.781702][ T199] ? lock_acquire (./include/trace/events/lock.h:23 (discriminator 22) kernel/locking/lockdep.c:5871 (discriminator 22)) [ 9.781704][ T199] tun_get_user (drivers/net/tun.c:2045) [ 9.781707][ T199] ? do_syscall_64 (arch/x86/entry/syscall_64.c:61 arch/x86/entry/syscall_64.c:84) [ 9.781709][ T199] ? entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121) [ 9.781712][ T199] ? tun_build_skb (./arch/x86/include/asm/atomic.h:23) [ 9.781714][ T199] ? mark_usage (kernel/locking/lockdep.c:4690) [ 9.781715][ T199] ? 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) [ 9.781718][ T199] ? ref_tracker_dir_print (lib/ref_tracker.c:200) [ 9.781721][ T199] ? find_held_lock (kernel/locking/lockdep.c:5367) [ 9.781723][ T199] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5554) [ 9.781725][ T199] ? tun_get (./include/linux/rcupdate.h:319 (discriminator 2) ./include/linux/rcupdate.h:880 (discriminator 2) drivers/net/tun.c:831 (discriminator 2)) [ 9.781727][ T199] tun_chr_write_iter (drivers/net/tun.c:2091) [ 9.781729][ T199] do_iter_readv_writev (fs/read_write.c:828) [ 9.781731][ T199] ? kasan_quarantine_put (mm/kasan/quarantine.c:234 (discriminator 6)) [ 9.781733][ T199] ? fsnotify (fs/notify/fsnotify.c:548 (discriminator 3)) [ 9.781735][ T199] ? 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) [ 9.781737][ T199] ? new_sync_write (./include/linux/ioprio.h:41) [ 9.781741][ T199] ? import_iovec (lib/iov_iter.c:1440 (discriminator 1)) [ 9.781743][ T199] vfs_writev (fs/read_write.c:1058) [ 9.781744][ T199] ? tun_get (./include/linux/rcupdate.h:319 (discriminator 2) ./include/linux/rcupdate.h:880 (discriminator 2) drivers/net/tun.c:831 (discriminator 2)) [ 9.781746][ T199] ? vfs_iocb_iter_write (fs/read_write.c:41) [ 9.781747][ T199] ? tun_recvmsg (./include/linux/netdevice.h:4505 (discriminator 31)) [ 9.781749][ T199] ? __lock_acquire (kernel/locking/lockdep.c:5254) [ 9.781751][ T199] ? new_sync_read (./include/linux/fs.h:2185 (discriminator 1) fs/read_write.c:489 (discriminator 1)) [ 9.781753][ T199] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5908 (discriminator 2)) [ 9.781755][ T199] ? find_held_lock (kernel/locking/lockdep.c:5367) [ 9.781758][ T199] ? __fget_files (./include/linux/rcupdate.h:882 fs/file.c:1100) [ 9.781761][ T199] ? do_writev (fs/read_write.c:1104) [ 9.781762][ T199] do_writev (fs/read_write.c:1104) [ 9.781764][ T199] ? vfs_writev (fs/read_write.c:41) [ 9.781765][ T199] ? fput (./include/linux/preempt.h:500 ./include/linux/file_ref.h:150 fs/file_table.c:588) [ 9.781767][ T199] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3)) [ 9.781769][ T199] do_syscall_64 (arch/x86/entry/syscall_64.c:61 arch/x86/entry/syscall_64.c:84) [ 9.781771][ T199] ? irq_exit_rcu (kernel/softirq.c:786) [ 9.781773][ T199] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121) [ 9.781775][ T199] RIP: 0033:0x4c42a2 [ 9.781778][ T199] 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 [ 9.781780][ T199] RSP: 002b:00007ffeddb32a08 EFLAGS: 00000246 ORIG_RAX: 0000000000000014 [ 9.781784][ T199] RAX: ffffffffffffffda RBX: 0000000000000010 RCX: 00000000004c42a2 [ 9.781786][ T199] RDX: 0000000000000002 RSI: 00007ffeddb32a90 RDI: 0000000000000005 [ 9.781787][ T199] RBP: 00007ffeddb32a30 R08: 0000000000000000 R09: 0000000000000000 [ 9.781788][ T199] R10: 0000000000000000 R11: 0000000000000246 R12: 00007ffeddb33068 Finger prints: print_report:kasan_report:kasan_check_range:tcp_v6_send_response:tcp_v6_rcv