syzbot


BUG: soft lockup in wg_expired_new_handshake

Status: premoderation: reported on 2025/12/09 09:06
Reported-by: syzbot+632ed60ca79ba4d30ac8@syzkaller.appspotmail.com
First crash: 10d, last: 10d

Sample crash report:
watchdog: BUG: soft lockup - CPU#0 stuck for 144s! [kworker/u4:0:8]
Modules linked in:
CPU: 0 PID: 8 Comm: kworker/u4:0 Tainted: G        W          syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025
Workqueue: events_unbound toggle_allocation_gate
RIP: 0010:queued_write_lock_slowpath+0x11b/0x396 kernel/locking/qrwlock.c:85
Code: f0 41 81 0f 00 01 00 00 42 0f b6 04 23 84 c0 74 37 44 89 f9 80 e1 07 80 c1 03 38 c1 7c 2a 4c 89 ff e8 79 0b c0 fc eb 20 f3 90 <42> 0f b6 04 23 84 c0 74 15 44 89 f9 80 e1 07 80 c1 03 38 c1 7c 08
RSP: 0018:ffffc90000007bc0 EFLAGS: 00000206
RAX: 0000000000000300 RBX: 1ffff110245f9691 RCX: ffffffff84f49841
RDX: 0000000000000001 RSI: 0000000000000004 RDI: ffff888122fcb488
RBP: ffffc90000007c70 R08: dffffc0000000000 R09: ffffed10245f9692
R10: ffffed10245f9692 R11: 1ffff110245f9691 R12: dffffc0000000000
R13: ffffc90000007c10 R14: ffff888122fcb48c R15: ffff888122fcb488
FS:  0000000000000000(0000) GS:ffff8881f7000000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007ffccbffbf00 CR3: 0000000006e0f000 CR4: 00000000003506b0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000600
Call Trace:
 <IRQ>
 queued_write_lock include/asm-generic/qrwlock.h:101 [inline]
 __raw_write_lock_bh include/linux/rwlock_api_smp.h:203 [inline]
 _raw_write_lock_bh+0xd6/0xe0 kernel/locking/spinlock.c:334
 wg_socket_clear_peer_endpoint_src+0x1e/0x50 drivers/net/wireguard/socket.c:310
 wg_expired_new_handshake+0x1c/0x30 drivers/net/wireguard/timers.c:101
 call_timer_fn+0x46/0x2a0 kernel/time/timer.c:1553
 expire_timers kernel/time/timer.c:1604 [inline]
 __run_timers+0x644/0x9b0 kernel/time/timer.c:1875
 run_timer_softirq+0x6a/0xf0 kernel/time/timer.c:1888
 handle_softirqs+0x1d7/0x600 kernel/softirq.c:642
 __do_softirq kernel/softirq.c:680 [inline]
 invoke_softirq kernel/softirq.c:497 [inline]
 __irq_exit_rcu+0x52/0xf0 kernel/softirq.c:729
 irq_exit_rcu+0x9/0x10 kernel/softirq.c:741
 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1118 [inline]
 sysvec_apic_timer_interrupt+0xa9/0xc0 arch/x86/kernel/apic/apic.c:1118
 </IRQ>
 <TASK>
 asm_sysvec_apic_timer_interrupt+0x1b/0x20 arch/x86/include/asm/idtentry.h:691
RIP: 0010:__sanitizer_cov_trace_pc+0x1/0x60 kernel/kcov.c:209
Code: fb e8 23 00 00 00 48 8b 3d 7c 4f 02 06 48 89 de e8 f4 c0 43 00 5b 5d c3 00 90 90 90 90 90 90 90 90 90 90 90 b8 0c 67 40 a5 55 <48> 89 e5 48 8b 45 08 65 48 8b 0d 30 43 92 7e 65 8b 15 31 43 92 7e
RSP: 0018:ffffc90000087830 EFLAGS: 00000202
RAX: 0000000000000000 RBX: dffffc0000000000 RCX: ffff888100298000
RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000000
RBP: ffffc90000087978 R08: dffffc0000000000 R09: ffffed103ee0721b
R10: 0000000000000000 R11: ffffffff81343830 R12: 1ffff1103ee07218
R13: 1ffff1103ee278a5 R14: 0000000000000001 R15: ffff8881f713c528
 on_each_cpu_cond_mask+0x43/0x80 kernel/smp.c:1165
 on_each_cpu include/linux/smp.h:71 [inline]
 text_poke_sync arch/x86/kernel/alternative.c:1574 [inline]
 text_poke_bp_batch+0x1cc/0x580 arch/x86/kernel/alternative.c:1774
 text_poke_flush arch/x86/kernel/alternative.c:1965 [inline]
 text_poke_finish+0x1a/0x30 arch/x86/kernel/alternative.c:1972
 arch_jump_label_transform_apply+0x15/0x30 arch/x86/kernel/jump_label.c:146
 __jump_label_update+0x37c/0x3a0 kernel/jump_label.c:451
 jump_label_update+0x39b/0x450 kernel/jump_label.c:797
 static_key_enable_cpuslocked+0x126/0x240 kernel/jump_label.c:173
 static_key_enable+0x1a/0x30 kernel/jump_label.c:186
 toggle_allocation_gate+0xb4/0x400 mm/kfence/core.c:805
 process_one_work+0x71f/0xc40 kernel/workqueue.c:2302
 worker_thread+0xa29/0x11f0 kernel/workqueue.c:2449
 kthread+0x281/0x320 kernel/kthread.c:386
 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295
 </TASK>
Sending NMI from CPU 0 to CPUs 1:
NMI backtrace for cpu 1
CPU: 1 PID: 676 Comm: kworker/u4:5 Tainted: G        W          syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025
Workqueue: wg-kex-wg0 wg_packet_handshake_send_worker
RIP: 0010:native_halt arch/x86/include/asm/irqflags.h:57 [inline]
RIP: 0010:halt arch/x86/include/asm/irqflags.h:98 [inline]
RIP: 0010:kvm_wait+0xcc/0x140 arch/x86/kernel/kvm.c:1058
Code: 20 f6 44 24 21 02 75 24 48 89 f8 48 c1 e8 03 42 0f b6 04 30 84 c0 75 48 0f b6 07 40 38 f0 75 a6 66 90 0f 00 2d 55 96 13 04 f4 <eb> 9a fa 48 89 f8 48 c1 e8 03 42 0f b6 04 30 84 c0 75 3f 0f b6 07
RSP: 0018:ffffc9000e227140 EFLAGS: 00000046
RAX: 0000000000000003 RBX: ffff888111fb7560 RCX: ffffffff84f48de2
RDX: dffffc0000000000 RSI: 0000000000000003 RDI: ffff888111fb7560
RBP: ffffc9000e2271d0 R08: dffffc0000000000 R09: ffffed10223f6ead
R10: ffffed10223f6ead R11: 1ffff110223f6eac R12: 1ffff1103ee20001
R13: ffff8881f7138cf4 R14: dffffc0000000000 R15: 1ffff92001c44e28
FS:  0000000000000000(0000) GS:ffff8881f7100000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000000000 CR3: 000000010cf8b000 CR4: 00000000003506a0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000600
Call Trace:
 <TASK>
 pv_wait arch/x86/include/asm/paravirt.h:603 [inline]
 pv_wait_head_or_lock kernel/locking/qspinlock_paravirt.h:470 [inline]
 __pv_queued_spin_lock_slowpath+0x690/0xc40 kernel/locking/qspinlock.c:511
 pv_queued_spin_lock_slowpath arch/x86/include/asm/paravirt.h:591 [inline]
 queued_spin_lock_slowpath+0x47/0x50 arch/x86/include/asm/qspinlock.h:51
 queued_spin_lock include/asm-generic/qspinlock.h:114 [inline]
 do_raw_spin_lock include/linux/spinlock.h:187 [inline]
 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:111 [inline]
 _raw_spin_lock_irqsave+0x108/0x110 kernel/locking/spinlock.c:162
 trie_delete_elem+0x95/0x720 kernel/bpf/lpm_trie.c:467
 bpf_prog_e6a446e6ec7b690a+0x40/0x44
 bpf_dispatcher_nop_func include/linux/bpf.h:987 [inline]
 __bpf_prog_run include/linux/filter.h:603 [inline]
 bpf_prog_run include/linux/filter.h:610 [inline]
 __bpf_trace_run kernel/trace/bpf_trace.c:2283 [inline]
 bpf_trace_run2+0xff/0x250 kernel/trace/bpf_trace.c:2322
 __bpf_trace_contention_end+0xb/0x10 include/trace/events/lock.h:122
 trace_contention_end include/trace/events/lock.h:122 [inline]
 __pv_queued_spin_lock_slowpath+0xbff/0xc40 kernel/locking/qspinlock.c:560
 pv_queued_spin_lock_slowpath arch/x86/include/asm/paravirt.h:591 [inline]
 queued_spin_lock_slowpath+0x47/0x50 arch/x86/include/asm/qspinlock.h:51
 queued_spin_lock include/asm-generic/qspinlock.h:114 [inline]
 do_raw_spin_lock include/linux/spinlock.h:187 [inline]
 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:111 [inline]
 _raw_spin_lock_irqsave+0x108/0x110 kernel/locking/spinlock.c:162
 trie_delete_elem+0x95/0x720 kernel/bpf/lpm_trie.c:467
 bpf_prog_e6a446e6ec7b690a+0x40/0x44
 bpf_dispatcher_nop_func include/linux/bpf.h:987 [inline]
 __bpf_prog_run include/linux/filter.h:603 [inline]
 bpf_prog_run include/linux/filter.h:610 [inline]
 __bpf_trace_run kernel/trace/bpf_trace.c:2283 [inline]
 bpf_trace_run2+0xff/0x250 kernel/trace/bpf_trace.c:2322
 __bpf_trace_kfree+0x6f/0x90 include/trace/events/kmem.h:95
 trace_kfree include/trace/events/kmem.h:95 [inline]
 kfree+0xc9/0xf0 mm/slab_common.c:977
 skb_free_head net/core/skbuff.c:765 [inline]
 skb_release_data+0x63f/0x890 net/core/skbuff.c:794
 skb_release_all net/core/skbuff.c:859 [inline]
 __kfree_skb net/core/skbuff.c:873 [inline]
 kfree_skb_reason+0xd4/0x230 net/core/skbuff.c:896
 kfree_skb include/linux/skbuff.h:1239 [inline]
 send6+0x3af/0x630 drivers/net/wireguard/socket.c:158
 wg_socket_send_skb_to_peer+0x114/0x1d0 drivers/net/wireguard/socket.c:178
 wg_socket_send_buffer_to_peer+0x118/0x170 drivers/net/wireguard/socket.c:200
 wg_packet_send_handshake_initiation drivers/net/wireguard/send.c:40 [inline]
 wg_packet_handshake_send_worker+0x1d4/0x240 drivers/net/wireguard/send.c:51
 process_one_work+0x71f/0xc40 kernel/workqueue.c:2302
 worker_thread+0xa29/0x11f0 kernel/workqueue.c:2449
 kthread+0x281/0x320 kernel/kthread.c:386
 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295
 </TASK>

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/12/09 09:05 android14-6.1 5ddae867b428 d6526ea3 .config console log report info [disk image] [vmlinux] [kernel image] ci2-android-6-1-perf BUG: soft lockup in wg_expired_new_handshake
* Struck through repros no longer work on HEAD.