====================================== | xx__-> [ 1455.263644][T19412] ================================================================== | [ 1455.263900][T19412] 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) | [ 1455.264105][T19412] Read of size 8 at addr ff11000009764a50 by task packetdrill/19412 | [ 1455.264296][T19412] [ 1455.264367][T19412] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 1455.264369][T19412] Call Trace: [ 1455.264371][T19412] [ 1455.264372][T19412] dump_stack_lvl (lib/dump_stack.c:94 lib/dump_stack.c:120) [ 1455.264377][T19412] print_address_description.constprop.0 (mm/kasan/report.c:378) [ 1455.264381][T19412] print_report (mm/kasan/report.c:482) [ 1455.264383][T19412] ? __virt_addr_valid (./include/linux/rcupdate.h:948 ./include/linux/mmzone.h:2276 arch/x86/mm/physaddr.c:54) [ 1455.264385][T19412] ? __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)) [ 1455.264387][T19412] kasan_report (mm/kasan/report.c:595) [ 1455.264390][T19412] ? 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) [ 1455.264392][T19412] ? 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) [ 1455.264394][T19412] kasan_check_range (mm/kasan/generic.c:186 mm/kasan/generic.c:200) [ 1455.264396][T19412] 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) [ 1455.264397][T19412] ? __mod_timer (kernel/time/timer.c:803 kernel/time/timer.c:848 kernel/time/timer.c:1025) [ 1455.264401][T19412] ? __xfrm_policy_check2.constprop.0 (net/ipv4/ip_input.c:414 (discriminator 5)) [ 1455.264403][T19412] ? __lock_acquire (kernel/locking/lockdep.c:5254) [ 1455.264407][T19412] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5554) [ 1455.264408][T19412] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3)) [ 1455.264412][T19412] tcp_v6_rcv (net/ipv6/tcp_ipv6.c:1149 net/ipv6/tcp_ipv6.c:1201 net/ipv6/tcp_ipv6.c:1993) [ 1455.264415][T19412] ? 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) [ 1455.264417][T19412] ? mark_usage (kernel/locking/lockdep.c:4690) [ 1455.264420][T19412] ip6_protocol_deliver_rcu (net/ipv6/ip6_input.c:479) [ 1455.264424][T19412] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3)) [ 1455.264426][T19412] ip6_input (net/ipv6/ip6_input.c:534 ./include/linux/netfilter.h:429 net/ipv6/ip6_input.c:545) [ 1455.264427][T19412] __netif_receive_skb_one_core (net/core/dev.c:6264) [ 1455.264431][T19412] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5908 (discriminator 2)) [ 1455.264433][T19412] ? 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)) [ 1455.264435][T19412] ? __netif_receive_skb_list_core (net/core/dev.c:6310) [ 1455.264437][T19412] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3)) [ 1455.264438][T19412] ? ktime_get_with_offset (./include/linux/seqlock.h:75 (discriminator 6) kernel/time/timekeeping.c:1046 (discriminator 6)) [ 1455.264441][T19412] netif_receive_skb_internal (net/core/dev.c:6463) [ 1455.264443][T19412] ? __netif_receive_skb (./include/linux/skbuff.h:1141) [ 1455.264444][T19412] ? __might_fault (mm/memory.c:7482 (discriminator 5)) [ 1455.264448][T19412] ? _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) [ 1455.264452][T19412] netif_receive_skb (net/core/dev.c:6522) [ 1455.264454][T19412] ? __local_bh_disable_ip (./include/linux/ftrace.h:1177 kernel/softirq.c:418) [ 1455.264456][T19412] tun_rx_batched.isra.0 (drivers/net/tun.c:1595) [ 1455.264459][T19412] ? mark_usage (kernel/locking/lockdep.c:4690) [ 1455.264461][T19412] ? __lock_acquire (kernel/locking/lockdep.c:5254) [ 1455.264463][T19412] ? tun_setup (drivers/net/tun.c:2410) [ 1455.264465][T19412] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3)) [ 1455.264466][T19412] ? lock_acquire (./include/trace/events/lock.h:23 (discriminator 22) kernel/locking/lockdep.c:5871 (discriminator 22)) [ 1455.264468][T19412] tun_get_user (drivers/net/tun.c:2045) [ 1455.264471][T19412] ? do_syscall_64 (arch/x86/entry/syscall_64.c:61 arch/x86/entry/syscall_64.c:84) [ 1455.264474][T19412] ? entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121) [ 1455.264476][T19412] ? tun_build_skb (./arch/x86/include/asm/atomic.h:23) [ 1455.264478][T19412] ? mark_usage (kernel/locking/lockdep.c:4690) [ 1455.264480][T19412] ? 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) [ 1455.264482][T19412] ? ref_tracker_dir_print (lib/ref_tracker.c:200) [ 1455.264485][T19412] ? find_held_lock (kernel/locking/lockdep.c:5367) [ 1455.264487][T19412] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5554) [ 1455.264489][T19412] ? tun_get (./include/linux/rcupdate.h:319 (discriminator 2) ./include/linux/rcupdate.h:880 (discriminator 2) drivers/net/tun.c:831 (discriminator 2)) [ 1455.264491][T19412] tun_chr_write_iter (drivers/net/tun.c:2091) [ 1455.264493][T19412] do_iter_readv_writev (fs/read_write.c:828) [ 1455.264495][T19412] ? kasan_quarantine_put (mm/kasan/quarantine.c:234 (discriminator 6)) [ 1455.264496][T19412] ? fsnotify (fs/notify/fsnotify.c:548 (discriminator 3)) [ 1455.264499][T19412] ? 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) [ 1455.264501][T19412] ? new_sync_write (./include/linux/ioprio.h:41) [ 1455.264504][T19412] ? import_iovec (lib/iov_iter.c:1440 (discriminator 1)) [ 1455.264506][T19412] vfs_writev (fs/read_write.c:1058) [ 1455.264507][T19412] ? tun_get (./include/linux/rcupdate.h:319 (discriminator 2) ./include/linux/rcupdate.h:880 (discriminator 2) drivers/net/tun.c:831 (discriminator 2)) [ 1455.264509][T19412] ? vfs_iocb_iter_write (fs/read_write.c:41) [ 1455.264510][T19412] ? tun_recvmsg (./include/linux/netdevice.h:4505 (discriminator 31)) [ 1455.264512][T19412] ? __lock_acquire (kernel/locking/lockdep.c:5254) [ 1455.264513][T19412] ? new_sync_read (./include/linux/fs.h:2185 (discriminator 1) fs/read_write.c:489 (discriminator 1)) [ 1455.264516][T19412] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5908 (discriminator 2)) [ 1455.264517][T19412] ? find_held_lock (kernel/locking/lockdep.c:5367) [ 1455.264520][T19412] ? __fget_files (./include/linux/rcupdate.h:882 fs/file.c:1100) [ 1455.264523][T19412] ? do_writev (fs/read_write.c:1104) [ 1455.264524][T19412] do_writev (fs/read_write.c:1104) [ 1455.264526][T19412] ? vfs_writev (fs/read_write.c:41) [ 1455.264527][T19412] ? fput (./include/linux/preempt.h:500 ./include/linux/file_ref.h:150 fs/file_table.c:588) [ 1455.264529][T19412] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3)) [ 1455.264531][T19412] do_syscall_64 (arch/x86/entry/syscall_64.c:61 arch/x86/entry/syscall_64.c:84) [ 1455.264532][T19412] ? irq_exit_rcu (kernel/softirq.c:786) [ 1455.264534][T19412] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121) [ 1455.264536][T19412] RIP: 0033:0x4c42a2 [ 1455.264538][T19412] 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 [ 1455.264540][T19412] RSP: 002b:00007fff00dfba38 EFLAGS: 00000246 ORIG_RAX: 0000000000000014 [ 1455.264544][T19412] RAX: ffffffffffffffda RBX: 0000000000000010 RCX: 00000000004c42a2 [ 1455.264545][T19412] RDX: 0000000000000002 RSI: 00007fff00dfbac0 RDI: 0000000000000005 [ 1455.264546][T19412] RBP: 00007fff00dfba60 R08: 0000000000000000 R09: 0000000000000000 [ 1455.264547][T19412] R10: 0000000000000000 R11: 0000000000000246 R12: 00007fff00dfc098 Finger prints: print_report:kasan_report:kasan_check_range:tcp_v6_send_response:tcp_v6_rcv