syzbot


KCSAN: data-race in wg_expired_retransmit_handshake / wg_packet_send_queued_handshake_initiation (2)

Status: auto-obsoleted due to no activity on 2025/12/18 18:21
Subsystems: wireguard
[Documentation on labels]
First crash: 80d, last: 80d
Similar bugs (2)
Kernel Title Rank 🛈 Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream KCSAN: data-race in wg_expired_retransmit_handshake / wg_packet_send_queued_handshake_initiation wireguard 6 1 273d 273d 0/29 auto-obsoleted due to no activity on 2025/06/08 20:20
upstream KCSAN: data-race in wg_expired_retransmit_handshake / wg_packet_send_queued_handshake_initiation (3) wireguard 6 2 9d03h 6d02h 0/29 moderation: reported on 2026/01/06 14:04

Sample crash report:
==================================================================
BUG: KCSAN: data-race in wg_expired_retransmit_handshake / wg_packet_send_queued_handshake_initiation

write to 0xffff8881192f4488 of 4 bytes by interrupt on cpu 1:
 wg_packet_send_queued_handshake_initiation+0x32/0x180 drivers/net/wireguard/send.c:59
 wg_packet_send_staged_packets+0xbd6/0xce0 drivers/net/wireguard/send.c:413
 wg_xmit+0x5c7/0x6b0 drivers/net/wireguard/device.c:218
 __netdev_start_xmit include/linux/netdevice.h:5248 [inline]
 netdev_start_xmit include/linux/netdevice.h:5257 [inline]
 xmit_one net/core/dev.c:3845 [inline]
 dev_hard_start_xmit+0x125/0x3e0 net/core/dev.c:3861
 __dev_queue_xmit+0x10f9/0x2000 net/core/dev.c:4763
 dev_queue_xmit include/linux/netdevice.h:3365 [inline]
 neigh_connected_output+0x253/0x2c0 net/core/neighbour.c:1624
 neigh_output include/net/neighbour.h:547 [inline]
 ip6_finish_output2+0xa5f/0xd10 net/ipv6/ip6_output.c:136
 __ip6_finish_output net/ipv6/ip6_output.c:-1 [inline]
 ip6_finish_output+0x3a4/0x540 net/ipv6/ip6_output.c:220
 NF_HOOK_COND include/linux/netfilter.h:307 [inline]
 ip6_output+0x10a/0x250 net/ipv6/ip6_output.c:247
 dst_output include/net/dst.h:464 [inline]
 NF_HOOK include/linux/netfilter.h:318 [inline]
 ndisc_send_skb+0x50f/0x760 net/ipv6/ndisc.c:512
 ndisc_send_rs+0x2e7/0x360 net/ipv6/ndisc.c:722
 addrconf_rs_timer+0x1e5/0x310 net/ipv6/addrconf.c:4037
 call_timer_fn+0x3b/0x2c0 kernel/time/timer.c:1747
 expire_timers kernel/time/timer.c:1798 [inline]
 __run_timers kernel/time/timer.c:2372 [inline]
 __run_timer_base+0x415/0x610 kernel/time/timer.c:2384
 run_timer_base kernel/time/timer.c:2393 [inline]
 run_timer_softirq+0x31/0x70 kernel/time/timer.c:2403
 handle_softirqs+0xba/0x290 kernel/softirq.c:622
 __do_softirq kernel/softirq.c:656 [inline]
 invoke_softirq kernel/softirq.c:496 [inline]
 __irq_exit_rcu+0x3a/0xc0 kernel/softirq.c:723
 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1052 [inline]
 sysvec_apic_timer_interrupt+0x74/0x80 arch/x86/kernel/apic/apic.c:1052
 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:697
 native_safe_halt arch/x86/include/asm/irqflags.h:48 [inline]
 pv_native_safe_halt+0x13/0x20 arch/x86/kernel/paravirt.c:81
 arch_safe_halt arch/x86/include/asm/paravirt.h:107 [inline]
 default_idle+0x13/0x20 arch/x86/kernel/process.c:767
 default_idle_call+0x3c/0x60 kernel/sched/idle.c:122
 cpuidle_idle_call kernel/sched/idle.c:190 [inline]
 do_idle+0xcb/0x240 kernel/sched/idle.c:330
 cpu_startup_entry+0x25/0x30 kernel/sched/idle.c:428
 start_secondary+0x95/0xa0 arch/x86/kernel/smpboot.c:315
 common_startup_64+0x13e/0x147

write to 0xffff8881192f4488 of 4 bytes by interrupt on cpu 0:
 wg_expired_retransmit_handshake+0x81/0x160 drivers/net/wireguard/timers.c:64
 call_timer_fn+0x3b/0x2c0 kernel/time/timer.c:1747
 expire_timers kernel/time/timer.c:1798 [inline]
 __run_timers kernel/time/timer.c:2372 [inline]
 __run_timer_base+0x415/0x610 kernel/time/timer.c:2384
 run_timer_base kernel/time/timer.c:2393 [inline]
 run_timer_softirq+0x31/0x70 kernel/time/timer.c:2403
 handle_softirqs+0xba/0x290 kernel/softirq.c:622
 __do_softirq kernel/softirq.c:656 [inline]
 invoke_softirq kernel/softirq.c:496 [inline]
 __irq_exit_rcu+0x3a/0xc0 kernel/softirq.c:723
 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1052 [inline]
 sysvec_apic_timer_interrupt+0x74/0x80 arch/x86/kernel/apic/apic.c:1052
 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:697
 native_safe_halt arch/x86/include/asm/irqflags.h:48 [inline]
 pv_native_safe_halt+0x13/0x20 arch/x86/kernel/paravirt.c:81
 arch_safe_halt arch/x86/include/asm/paravirt.h:107 [inline]
 default_idle+0x13/0x20 arch/x86/kernel/process.c:767
 default_idle_call+0x3c/0x60 kernel/sched/idle.c:122
 cpuidle_idle_call kernel/sched/idle.c:190 [inline]
 do_idle+0xcb/0x240 kernel/sched/idle.c:330
 cpu_startup_entry+0x25/0x30 kernel/sched/idle.c:428
 rest_init+0xee/0xf0 init/main.c:757
 start_kernel+0x4dc/0x510 init/main.c:1111
 x86_64_start_reservations+0x24/0x30 arch/x86/kernel/head64.c:310
 x86_64_start_kernel+0xfc/0x100 arch/x86/kernel/head64.c:291
 common_startup_64+0x13e/0x147

value changed: 0x0000000a -> 0x00000000

Reported by Kernel Concurrency Sanitizer on:
CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Tainted: G        W           syzkaller #0 PREEMPT(voluntary) 
Tainted: [W]=WARN
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/02/2025
==================================================================

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/10/23 18:15 upstream 43e9ad0c55a3 c0460fcd .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-kcsan-gce KCSAN: data-race in wg_expired_retransmit_handshake / wg_packet_send_queued_handshake_initiation
* Struck through repros no longer work on HEAD.