====================================== | xx__-> [ 97.669838][ C3] ================================================================== | [ 97.670164][ C3] 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) | [ 97.670418][ C3] Read of size 8 at addr ff1100000d2a6578 by task reuseport_bpf/2032 | [ 97.670658][ C3] [ 97.670745][ C3] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 97.670747][ C3] Call Trace: [ 97.670749][ C3] [ 97.670750][ C3] dump_stack_lvl (lib/dump_stack.c:94 lib/dump_stack.c:120) [ 97.670755][ C3] print_address_description.constprop.0 (mm/kasan/report.c:378) [ 97.670759][ C3] print_report (mm/kasan/report.c:482) [ 97.670760][ C3] ? __virt_addr_valid (./include/linux/rcupdate.h:948 ./include/linux/mmzone.h:2276 arch/x86/mm/physaddr.c:54) [ 97.670763][ C3] ? __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)) [ 97.670765][ C3] kasan_report (mm/kasan/report.c:595) [ 97.670768][ C3] ? 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) [ 97.670770][ C3] ? 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) [ 97.670773][ C3] kasan_check_range (mm/kasan/generic.c:186 mm/kasan/generic.c:200) [ 97.670774][ C3] ? make_kuid (kernel/user_namespace.c:340 kernel/user_namespace.c:425) [ 97.670777][ C3] 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) [ 97.670779][ C3] ? __mod_timer (kernel/time/timer.c:1139 (discriminator 3)) [ 97.670783][ C3] ? tcp_v6_send_synack (./include/net/inet_sock.h:338 (discriminator 1)) [ 97.670784][ C3] ? __lock_acquire (kernel/locking/lockdep.c:5254) [ 97.670787][ C3] ? logarithmic_accumulation.constprop.0 (kernel/time/timekeeping.c:2518 (discriminator 1) kernel/time/timekeeping.c:2568 (discriminator 1)) [ 97.670790][ C3] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5554) [ 97.670792][ C3] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3)) [ 97.670795][ C3] tcp_v6_rcv (net/ipv6/tcp_ipv6.c:1149 net/ipv6/tcp_ipv6.c:1201 net/ipv6/tcp_ipv6.c:1993) [ 97.670799][ C3] ? tcp_v6_syn_recv_sock (./include/net/sock.h:1574) [ 97.670802][ C3] ? __lock_acquire (kernel/locking/lockdep.c:5254) [ 97.670804][ C3] ip6_protocol_deliver_rcu (net/ipv6/ip6_input.c:479) [ 97.670808][ C3] ip6_input_finish (net/ipv6/ip6_input.c:534) [ 97.670809][ C3] ip6_input (./include/linux/netfilter.h:325 ./include/linux/netfilter.h:319 net/ipv6/ip6_input.c:545) [ 97.670810][ C3] ? find_held_lock (kernel/locking/lockdep.c:5367) [ 97.670812][ C3] ? ip6_input_finish (net/ipv6/ip6_input.c:527 (discriminator 46)) [ 97.670813][ C3] ? ip6_rcv_core (./include/linux/rcupdate.h:319 (discriminator 2) ./include/linux/rcupdate.h:880 (discriminator 2) net/ipv6/ip6_input.c:328 (discriminator 2)) [ 97.670814][ C3] ? __asan_memset (mm/kasan/shadow.c:84 (discriminator 1)) [ 97.670817][ C3] ? ip6_rcv_core (./include/linux/rcupdate.h:882 net/ipv6/ip6_input.c:328) [ 97.670819][ C3] ipv6_rcv (./include/net/dst.h:480 (discriminator 4) net/ipv6/ip6_input.c:119 (discriminator 4) ./include/linux/netfilter.h:325 (discriminator 4) ./include/linux/netfilter.h:319 (discriminator 4) net/ipv6/ip6_input.c:351 (discriminator 4)) [ 97.670820][ C3] ? ip6_rcv_core (net/ipv6/ip6_input.c:211 (discriminator 96)) [ 97.670821][ C3] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3)) [ 97.670822][ C3] ? __update_load_avg_cfs_rq (kernel/sched/pelt.c:329) [ 97.670825][ C3] ? mark_usage (kernel/locking/lockdep.c:4690) [ 97.670827][ C3] ? __lock_acquire (kernel/locking/lockdep.c:5254) [ 97.670829][ C3] ? irq_matrix_free (kernel/irq/matrix.c:429 (discriminator 2)) [ 97.670832][ C3] ? process_backlog (./include/linux/local_lock_internal.h:62 (discriminator 2) net/core/dev.c:6726 (discriminator 2)) [ 97.670835][ C3] __netif_receive_skb_one_core (net/core/dev.c:6264) [ 97.670837][ C3] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5908 (discriminator 2)) [ 97.670839][ C3] ? process_backlog (./include/linux/local_lock_internal.h:62 (discriminator 2) net/core/dev.c:6726 (discriminator 2)) [ 97.670841][ C3] ? __netif_receive_skb_list_core (net/core/dev.c:6310) [ 97.670843][ C3] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3)) [ 97.670844][ C3] process_backlog (net/core/dev.c:6728) [ 97.670847][ C3] ? rcu_read_lock_any_held (./include/linux/lockdep.h:249 kernel/rcu/update.c:386 kernel/rcu/update.c:380) [ 97.670849][ C3] __napi_poll (net/core/dev.c:7787) [ 97.670851][ C3] net_rx_action (net/core/dev.c:7850 net/core/dev.c:8007) [ 97.670854][ C3] ? __lock_acquire (kernel/locking/lockdep.c:5254) [ 97.670856][ C3] ? __napi_poll (./include/net/gro.h:507) [ 97.670860][ C3] ? ktime_get_update_offsets_now (kernel/time/timekeeping.c:304 kernel/time/timekeeping.c:482 kernel/time/timekeeping.c:2859) [ 97.670862][ C3] ? mark_held_locks (kernel/locking/lockdep.c:4341) [ 97.670864][ C3] handle_softirqs (kernel/softirq.c:645) [ 97.670867][ C3] ? _local_bh_enable (kernel/softirq.c:428 (discriminator 1)) [ 97.670869][ C3] ? do_raw_spin_unlock (./include/linux/instrumented.h:82 ./include/linux/atomic/atomic-instrumented.h:32 ./include/asm-generic/qspinlock.h:58 kernel/locking/spinlock_debug.c:101 kernel/locking/spinlock_debug.c:141) [ 97.670871][ C3] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3)) [ 97.670872][ C3] ? __dev_queue_xmit (./include/linux/rcupdate.h:319 (discriminator 2) ./include/linux/rcupdate.h:920 (discriminator 2) net/core/dev.c:4961 (discriminator 2)) [ 97.670874][ C3] do_softirq (kernel/softirq.c:546 (discriminator 19) kernel/softirq.c:533 (discriminator 19)) [ 97.670876][ C3] [ 97.670876][ C3] [ 97.670877][ C3] __local_bh_enable_ip (kernel/softirq.c:473) [ 97.670879][ C3] __dev_queue_xmit (./include/linux/bottom_half.h:33 (discriminator 2) ./include/linux/rcupdate.h:923 (discriminator 2) net/core/dev.c:4961 (discriminator 2)) [ 97.670881][ C3] ? find_held_lock (kernel/locking/lockdep.c:5367) [ 97.670883][ C3] ? netdev_core_pick_tx (net/core/dev.c:4784) [ 97.670885][ C3] ? lock_acquire.part.0 (kernel/locking/lockdep.c:124 (discriminator 1) kernel/locking/lockdep.c:5884 (discriminator 1)) [ 97.670886][ C3] ? find_held_lock (kernel/locking/lockdep.c:5367) [ 97.670888][ C3] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5554) [ 97.670889][ C3] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3)) [ 97.670891][ C3] ? mark_held_locks (kernel/locking/lockdep.c:4341) [ 97.670892][ C3] ? __asan_memcpy (mm/kasan/shadow.c:106 (discriminator 1)) [ 97.670894][ C3] ? neigh_hh_output (./include/net/neighbour.h:525) [ 97.670897][ C3] ip6_finish_output2 (./include/net/neighbour.h:558 net/ipv6/ip6_output.c:138) [ 97.670900][ C3] ? ip6_dst_lookup (net/ipv6/ip6_output.c:1297) [ 97.670902][ C3] ? find_held_lock (kernel/locking/lockdep.c:5367) [ 97.670903][ C3] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5554) [ 97.670905][ C3] ? ip6_mtu (./include/linux/rcupdate.h:319 (discriminator 2) ./include/linux/rcupdate.h:880 (discriminator 2) ./include/net/ip6_route.h:384 (discriminator 2) net/ipv6/route.c:3290 (discriminator 2)) [ 97.670908][ C3] ip6_finish_output (net/ipv6/ip6_output.c:210 net/ipv6/ip6_output.c:221) [ 97.670910][ C3] ip6_output (./include/linux/netfilter.h:314 net/ipv6/ip6_output.c:248) [ 97.670913][ C3] ? ip6_finish_output (./include/linux/skbuff.h:1165) [ 97.670914][ C3] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5908 (discriminator 2)) [ 97.670916][ C3] ? find_held_lock (kernel/locking/lockdep.c:5367) [ 97.670918][ C3] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5554) [ 97.670920][ C3] ip6_xmit (./include/net/dst.h:470 (discriminator 4) ./include/linux/netfilter.h:325 (discriminator 4) ./include/linux/netfilter.h:319 (discriminator 4) net/ipv6/ip6_output.c:381 (discriminator 4)) [ 97.670922][ C3] ? mark_usage (kernel/locking/lockdep.c:4690) [ 97.670924][ C3] ? __lock_acquire (kernel/locking/lockdep.c:5254) [ 97.670926][ C3] ? ip6_autoflowlabel (./arch/x86/include/asm/bitops.h:202 (discriminator 1)) [ 97.670928][ C3] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5554) [ 97.670930][ C3] ? mark_usage (kernel/locking/lockdep.c:4690) [ 97.670931][ C3] ? __lock_acquire (kernel/locking/lockdep.c:5254) [ 97.670934][ C3] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5908 (discriminator 2)) [ 97.670935][ C3] ? inet6_csk_xmit (./include/linux/rcupdate.h:309 (discriminator 2) ./include/linux/rcupdate.h:849 (discriminator 2) net/ipv6/inet6_connection_sock.c:120 (discriminator 2)) [ 97.670937][ C3] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3)) [ 97.670939][ C3] ? lock_acquire (./include/trace/events/lock.h:23 (discriminator 22) kernel/locking/lockdep.c:5871 (discriminator 22)) [ 97.670941][ C3] inet6_csk_xmit (net/ipv6/inet6_connection_sock.c:123 (discriminator 13)) [ 97.670943][ C3] __tcp_transmit_skb (net/ipv4/tcp_output.c:1716) [ 97.670947][ C3] ? __lock_acquire (kernel/locking/lockdep.c:5254) [ 97.670949][ C3] ? __tcp_select_window (./include/net/tcp.h:1755) [ 97.670951][ C3] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5908 (discriminator 2)) [ 97.670953][ C3] ? find_held_lock (kernel/locking/lockdep.c:5367) [ 97.670956][ C3] tcp_write_xmit (net/ipv4/tcp_output.c:1734 net/ipv4/tcp_output.c:3070) [ 97.670960][ C3] ? tcp_retrans_try_collapse (./arch/x86/include/asm/atomic.h:23) [ 97.670962][ C3] ? tcp_set_state (net/ipv4/tcp.c:3028) [ 97.670964][ C3] __tcp_push_pending_frames (net/ipv4/tcp_output.c:3253 (discriminator 1)) [ 97.670966][ C3] __tcp_close (net/ipv4/tcp.c:3220) [ 97.670968][ C3] ? mark_held_locks (kernel/locking/lockdep.c:4341) [ 97.670970][ C3] tcp_close (net/ipv4/tcp.c:3311) [ 97.670971][ C3] inet_release (net/ipv4/af_inet.c:442) [ 97.670974][ C3] ? fcntl_setlk (fs/locks.c:2556) [ 97.670977][ C3] __sock_release (net/socket.c:735) [ 97.670981][ C3] sock_close (net/socket.c:1526 (discriminator 1)) [ 97.670982][ C3] __fput (fs/file_table.c:512) [ 97.670985][ C3] fput_close_sync (fs/file_table.c:617) [ 97.670987][ C3] ? alloc_file_clone (fs/file_table.c:479) [ 97.670989][ C3] ? do_raw_spin_unlock (./include/linux/instrumented.h:82 ./include/linux/atomic/atomic-instrumented.h:32 ./include/asm-generic/qspinlock.h:58 kernel/locking/spinlock_debug.c:101 kernel/locking/spinlock_debug.c:141) [ 97.670991][ C3] __x64_sys_close (fs/open.c:1560 fs/open.c:1545 fs/open.c:1545) [ 97.670993][ C3] do_syscall_64 (arch/x86/entry/syscall_64.c:61 arch/x86/entry/syscall_64.c:84) [ 97.670995][ C3] ? irq_exit_rcu (kernel/softirq.c:786) [ 97.670997][ C3] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121) [ 97.670999][ C3] RIP: 0033:0x7f691a4f254e [ 97.671002][ C3] Code: 4d 89 d8 e8 b4 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 c3 83 e2 39 83 fa 08 75 e7 e8 03 ff ff ff 0f 1f 00 f3 0f 1e fa All code ======== 0: 4d 89 d8 mov %r11,%r8 3: e8 b4 bd 00 00 call 0xbdbc 8: 4c 8b 5d f8 mov -0x8(%rbp),%r11 c: 41 8b 93 08 03 00 00 mov 0x308(%r11),%edx 13: 59 pop %rcx 14: 5e pop %rsi 15: 48 83 f8 fc cmp $0xfffffffffffffffc,%rax 19: 74 11 je 0x2c 1b: c9 leave 1c: c3 ret 1d: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 24: 48 8b 45 10 mov 0x10(%rbp),%rax 28: 0f 05 syscall 2a:* c9 leave <-- trapping instruction 2b: c3 ret 2c: 83 e2 39 and $0x39,%edx 2f: 83 fa 08 cmp $0x8,%edx 32: 75 e7 jne 0x1b 34: e8 03 ff ff ff call 0xffffffffffffff3c 39: 0f 1f 00 nopl (%rax) 3c: f3 0f 1e fa endbr64 Code starting with the faulting instruction =========================================== 0: c9 leave 1: c3 ret 2: 83 e2 39 and $0x39,%edx 5: 83 fa 08 cmp $0x8,%edx 8: 75 e7 jne 0xfffffffffffffff1 a: e8 03 ff ff ff call 0xffffffffffffff12 f: 0f 1f 00 nopl (%rax) 12: f3 0f 1e fa endbr64 [ 97.671004][ C3] RSP: 002b:00007fff0c298ef0 EFLAGS: 00000202 ORIG_RAX: 0000000000000003 [ 97.671007][ C3] RAX: ffffffffffffffda RBX: 00007fff0c299030 RCX: 00007f691a4f254e [ 97.671008][ C3] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000039 [ 97.671009][ C3] RBP: 00007fff0c298f00 R08: 0000000000000000 R09: 0000000000000000 [ 97.671010][ C3] R10: 0000000000000000 R11: 0000000000000202 R12: 0000000000002409 Finger prints: print_report:kasan_report:kasan_check_range:tcp_v6_send_response:tcp_v6_rcv