======================================
| xx__-> [ 1256.166830][ C1] ==================================================================
| [ 1256.167266][ C1] 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)
| [ 1256.167629][ C1] Read of size 8 at addr ff110000109b5278 by task tcp_fastopen_ba/22340
| [ 1256.167931][ C1]
[ 1256.168086][ C1] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[ 1256.168088][ C1] Call Trace:
[ 1256.168090][ C1]
[ 1256.168092][ C1] dump_stack_lvl (lib/dump_stack.c:94 lib/dump_stack.c:120)
[ 1256.168098][ C1] print_address_description.constprop.0 (mm/kasan/report.c:378)
[ 1256.168104][ C1] print_report (mm/kasan/report.c:482)
[ 1256.168106][ C1] ? __virt_addr_valid (./include/linux/rcupdate.h:948 ./include/linux/mmzone.h:2276 arch/x86/mm/physaddr.c:54)
[ 1256.168110][ C1] ? __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))
[ 1256.168112][ C1] kasan_report (mm/kasan/report.c:595)
[ 1256.168116][ C1] ? 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)
[ 1256.168119][ C1] ? 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)
[ 1256.168123][ C1] kasan_check_range (mm/kasan/generic.c:186 mm/kasan/generic.c:200)
[ 1256.168130][ C1] ? make_kuid (kernel/user_namespace.c:340 kernel/user_namespace.c:425)
[ 1256.168136][ C1] 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)
[ 1256.168142][ C1] ? __mod_timer (kernel/time/timer.c:1139 (discriminator 3))
[ 1256.168148][ C1] ? tcp_v6_send_synack (./include/net/inet_sock.h:338 (discriminator 1))
[ 1256.168150][ C1] ? __lock_acquire (kernel/locking/lockdep.c:5254)
[ 1256.168154][ C1] ? logarithmic_accumulation.constprop.0 (kernel/time/timekeeping.c:2518 (discriminator 1) kernel/time/timekeeping.c:2568 (discriminator 1))
[ 1256.168163][ C1] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5554)
[ 1256.168166][ C1] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3))
[ 1256.168171][ C1] tcp_v6_rcv (net/ipv6/tcp_ipv6.c:1149 net/ipv6/tcp_ipv6.c:1201 net/ipv6/tcp_ipv6.c:1993)
[ 1256.168178][ C1] ? tcp_v6_syn_recv_sock (./include/net/sock.h:1574)
[ 1256.168180][ C1] ? find_held_lock (kernel/locking/lockdep.c:5367)
[ 1256.168186][ C1] ip6_protocol_deliver_rcu (net/ipv6/ip6_input.c:479)
[ 1256.168192][ C1] ip6_input_finish (net/ipv6/ip6_input.c:534)
[ 1256.168195][ C1] ip6_input (./include/linux/netfilter.h:325 ./include/linux/netfilter.h:319 net/ipv6/ip6_input.c:545)
[ 1256.168196][ C1] ? rcu_read_lock_any_held (./include/linux/lockdep.h:249 kernel/rcu/update.c:388 kernel/rcu/update.c:380)
[ 1256.168200][ C1] ? ip6_input_finish (net/ipv6/ip6_input.c:527 (discriminator 46))
[ 1256.168202][ C1] ? 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))
[ 1256.168204][ C1] ? __asan_memset (mm/kasan/shadow.c:84 (discriminator 1))
[ 1256.168208][ C1] ? ip6_rcv_core (./include/linux/rcupdate.h:882 net/ipv6/ip6_input.c:328)
[ 1256.168211][ C1] 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))
[ 1256.168213][ C1] ? ip6_rcv_core (net/ipv6/ip6_input.c:211 (discriminator 96))
[ 1256.168215][ C1] ? entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121)
[ 1256.168218][ C1] ? mark_usage (kernel/locking/lockdep.c:4690)
[ 1256.168220][ C1] ? __lock_acquire (kernel/locking/lockdep.c:5254)
[ 1256.168224][ C1] ? process_backlog (./include/linux/local_lock_internal.h:62 (discriminator 2) net/core/dev.c:6726 (discriminator 2))
[ 1256.168227][ C1] __netif_receive_skb_one_core (net/core/dev.c:6264)
[ 1256.168230][ C1] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5908 (discriminator 2))
[ 1256.168232][ C1] ? process_backlog (./include/linux/local_lock_internal.h:62 (discriminator 2) net/core/dev.c:6726 (discriminator 2))
[ 1256.168235][ C1] ? __netif_receive_skb_list_core (net/core/dev.c:6310)
[ 1256.168237][ C1] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3))
[ 1256.168240][ C1] process_backlog (net/core/dev.c:6728)
[ 1256.168243][ C1] ? rcu_read_lock_any_held (./include/linux/lockdep.h:249 kernel/rcu/update.c:386 kernel/rcu/update.c:380)
[ 1256.168246][ C1] __napi_poll (net/core/dev.c:7787)
[ 1256.168249][ C1] net_rx_action (net/core/dev.c:7850 net/core/dev.c:8007)
[ 1256.168253][ C1] ? __lock_acquire (kernel/locking/lockdep.c:5254)
[ 1256.168255][ C1] ? __napi_poll (./include/net/gro.h:507)
[ 1256.168261][ C1] ? ktime_get_update_offsets_now (kernel/time/timekeeping.c:304 kernel/time/timekeeping.c:482 kernel/time/timekeeping.c:2859)
[ 1256.168264][ C1] ? mark_held_locks (kernel/locking/lockdep.c:4341)
[ 1256.168267][ C1] handle_softirqs (kernel/softirq.c:645)
[ 1256.168271][ C1] ? _local_bh_enable (kernel/softirq.c:428 (discriminator 1))
[ 1256.168273][ C1] ? 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)
[ 1256.168276][ C1] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3))
[ 1256.168278][ C1] ? __dev_queue_xmit (./include/linux/rcupdate.h:319 (discriminator 2) ./include/linux/rcupdate.h:920 (discriminator 2) net/core/dev.c:4961 (discriminator 2))
[ 1256.168281][ C1] do_softirq (kernel/softirq.c:546 (discriminator 19) kernel/softirq.c:533 (discriminator 19))
[ 1256.168283][ C1]
[ 1256.168284][ C1]
[ 1256.168285][ C1] __local_bh_enable_ip (kernel/softirq.c:473)
[ 1256.168288][ C1] __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))
[ 1256.168290][ C1] ? __lock_acquire (kernel/locking/lockdep.c:5254)
[ 1256.168294][ C1] ? netdev_core_pick_tx (net/core/dev.c:4784)
[ 1256.168297][ C1] ? lock_acquire.part.0 (kernel/locking/lockdep.c:124 (discriminator 1) kernel/locking/lockdep.c:5884 (discriminator 1))
[ 1256.168299][ C1] ? find_held_lock (kernel/locking/lockdep.c:5367)
[ 1256.168301][ C1] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5554)
[ 1256.168303][ C1] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3))
[ 1256.168305][ C1] ? mark_held_locks (kernel/locking/lockdep.c:4341)
[ 1256.168308][ C1] ? __asan_memcpy (mm/kasan/shadow.c:106 (discriminator 1))
[ 1256.168310][ C1] ? neigh_hh_output (./include/net/neighbour.h:525)
[ 1256.168313][ C1] ip6_finish_output2 (./include/net/neighbour.h:558 net/ipv6/ip6_output.c:138)
[ 1256.168316][ C1] ? ip6_dst_lookup (net/ipv6/ip6_output.c:1297)
[ 1256.168318][ C1] ? find_held_lock (kernel/locking/lockdep.c:5367)
[ 1256.168321][ C1] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5554)
[ 1256.168323][ C1] ? 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))
[ 1256.168328][ C1] ip6_finish_output (net/ipv6/ip6_output.c:210 net/ipv6/ip6_output.c:221)
[ 1256.168331][ C1] ip6_output (./include/linux/netfilter.h:314 net/ipv6/ip6_output.c:248)
[ 1256.168334][ C1] ? ip6_finish_output (./include/linux/skbuff.h:1165)
[ 1256.168337][ C1] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5908 (discriminator 2))
[ 1256.168339][ C1] ? find_held_lock (kernel/locking/lockdep.c:5367)
[ 1256.168342][ C1] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5554)
[ 1256.168346][ C1] 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))
[ 1256.168348][ C1] ? mark_usage (kernel/locking/lockdep.c:4690)
[ 1256.168351][ C1] ? __lock_acquire (kernel/locking/lockdep.c:5254)
[ 1256.168355][ C1] ? ip6_autoflowlabel (./arch/x86/include/asm/bitops.h:202 (discriminator 1))
[ 1256.168358][ C1] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5554)
[ 1256.168360][ C1] ? mark_usage (kernel/locking/lockdep.c:4690)
[ 1256.168363][ C1] ? __lock_acquire (kernel/locking/lockdep.c:5254)
[ 1256.168366][ C1] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5908 (discriminator 2))
[ 1256.168368][ C1] ? 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))
[ 1256.168371][ C1] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:753 (discriminator 3))
[ 1256.168373][ C1] ? lock_acquire (./include/trace/events/lock.h:23 (discriminator 22) kernel/locking/lockdep.c:5871 (discriminator 22))
[ 1256.168376][ C1] inet6_csk_xmit (net/ipv6/inet6_connection_sock.c:123 (discriminator 13))
[ 1256.168380][ C1] __tcp_transmit_skb (net/ipv4/tcp_output.c:1716)
[ 1256.168385][ C1] ? __lock_acquire (kernel/locking/lockdep.c:5254)
[ 1256.168388][ C1] ? __tcp_select_window (./include/net/tcp.h:1755)
[ 1256.168391][ C1] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5908 (discriminator 2))
[ 1256.168393][ C1] ? find_held_lock (kernel/locking/lockdep.c:5367)
[ 1256.168398][ C1] tcp_write_xmit (net/ipv4/tcp_output.c:1734 net/ipv4/tcp_output.c:3070)
[ 1256.168403][ C1] ? tcp_retrans_try_collapse (./arch/x86/include/asm/atomic.h:23)
[ 1256.168406][ C1] ? skb_attempt_defer_free (./include/linux/bottom_half.h:33 (discriminator 2) net/core/skbuff.c:7319 (discriminator 2) net/core/skbuff.c:7351 (discriminator 2))
[ 1256.168409][ C1] ? tcp_set_state (net/ipv4/tcp.c:3028)
[ 1256.168412][ C1] __tcp_push_pending_frames (net/ipv4/tcp_output.c:3253 (discriminator 1))
[ 1256.168415][ C1] __tcp_close (net/ipv4/tcp.c:3220)
[ 1256.168418][ C1] tcp_close (net/ipv4/tcp.c:3311)
[ 1256.168420][ C1] inet_release (net/ipv4/af_inet.c:442)
[ 1256.168424][ C1] ? fcntl_setlk (fs/locks.c:2556)
[ 1256.168428][ C1] __sock_release (net/socket.c:735)
[ 1256.168432][ C1] sock_close (net/socket.c:1526 (discriminator 1))
[ 1256.168434][ C1] __fput (fs/file_table.c:512)
[ 1256.168438][ C1] fput_close_sync (fs/file_table.c:617)
[ 1256.168441][ C1] ? alloc_file_clone (fs/file_table.c:479)
[ 1256.168443][ C1] ? 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)
[ 1256.168446][ C1] __x64_sys_close (fs/open.c:1560 fs/open.c:1545 fs/open.c:1545)
[ 1256.168449][ C1] do_syscall_64 (arch/x86/entry/syscall_64.c:61 arch/x86/entry/syscall_64.c:84)
[ 1256.168452][ C1] ? exc_page_fault (arch/x86/mm/fault.c:1489 (discriminator 3) arch/x86/mm/fault.c:1536 (discriminator 3))
[ 1256.168455][ C1] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121)
[ 1256.168457][ C1] RIP: 0033:0x7fecfbad854e
[ 1256.168462][ C1] 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
[ 1256.168464][ C1] RSP: 002b:00007ffe2a1cda40 EFLAGS: 00000202 ORIG_RAX: 0000000000000003
[ 1256.168469][ C1] RAX: ffffffffffffffda RBX: 0000000000000010 RCX: 00007fecfbad854e
[ 1256.168471][ C1] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000011
[ 1256.168472][ C1] RBP: 00007ffe2a1cda50 R08: 0000000000000000 R09: 0000000000000000
[ 1256.168473][ C1] R10: 0000000000000000 R11: 0000000000000202 R12: 00000000000026bb
Finger prints:
print_report:kasan_report:kasan_check_range:tcp_v6_send_response:tcp_v6_rcv