BUG: workqueue lockup in wg_ratelimiter_gc_entries

Status: moderation: reported on 2026/09/15 06:34
Subsystems: arm
Labels: prio:high
[Documentation on labels]
Reported-by: syzbot+bccb81be74f2979f2384@syzkaller.appspotmail.com
First crash: 4d08h, last: 4d08h
✨ AI Jobs (2)
ID Workflow Result Correct Bug Created Started Finished Revision
da8272e7 repro-c 💥 BUG: workqueue lockup in wg_ratelimiter_gc_entries 2026/09/15 06:49 2026/09/15 06:49 2026/09/15 14:11 81a27d1a
4a37a66e assessment-security DenialOfService: ✅ Exploitable: ❌ FilesystemTrigger: ❌ NetworkTrigger: ✅ PeripheralTrigger: ❌ RemoteTrigger: ❌ Unprivileged: ✅ UserNamespace: ✅ VMGuestTrigger: ✅ VMHostTrigger: ❌ BUG: workqueue lockup in wg_ratelimiter_gc_entries 2026/09/13 00:34 2026/09/13 00:34 2026/09/13 00:41 70a60e12

Sample crash report:
BUG: workqueue lockup - pool cpus=0 node=0 flags=0x0 nice=0 stuck for 39s!
Showing busy workqueues and worker pools:
workqueue events: flags=0x100
  pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=2 refcnt=3
    pending: nsim_dev_hwstats_traffic_work, vmstat_shepherd
workqueue events_unbound: flags=0x2
  pwq 8: cpus=0-1 flags=0x4 nice=0 active=1 refcnt=2
    in-flight: 4120:nsim_dev_trap_report_work for 0s
workqueue events_power_efficient: flags=0x82
  pwq 8: cpus=0-1 flags=0x4 nice=0 active=3 refcnt=4
    in-flight: 43:wg_ratelimiter_gc_entries for 39s
    pending: 2*neigh_managed_work
workqueue mm_percpu_wq: flags=0x108
  pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=1 refcnt=2
    pending: vmstat_update
workqueue writeback: flags=0x4a
  pwq 8: cpus=0-1 flags=0x4 nice=0 active=1 refcnt=2
    in-flight: 6453:wb_workfn for 0s
workqueue wg-kex-wg0: flags=0x124
  pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=1 refcnt=2
    pending: wg_packet_handshake_receive_worker
workqueue wg-crypt-wg0: flags=0x128
  pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=2 refcnt=3
    pending: wg_packet_encrypt_worker, wg_packet_tx_worker
workqueue wg-kex-wg1: flags=0x124
  pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=1 refcnt=2
    pending: wg_packet_handshake_receive_worker
workqueue wg-crypt-wg1: flags=0x128
  pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=1 refcnt=2
    pending: wg_packet_decrypt_worker
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=2
    pending: wg_packet_encrypt_worker
workqueue wg-crypt-wg2: flags=0x128
  pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=1 refcnt=2
    pending: wg_packet_encrypt_worker
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=2
    pending: wg_packet_encrypt_worker
workqueue wg-crypt-wg0: flags=0x128
  pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=2 refcnt=3
    pending: wg_packet_encrypt_worker, wg_packet_tx_worker
workqueue wg-crypt-wg1: flags=0x128
  pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=3 refcnt=4
    pending: wg_packet_encrypt_worker, wg_packet_tx_worker, wg_packet_decrypt_worker
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=2
    pending: wg_packet_tx_worker
workqueue wg-crypt-wg2: flags=0x128
  pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=1 refcnt=2
    pending: wg_packet_encrypt_worker
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=2
    pending: wg_packet_encrypt_worker
workqueue krds_cp_wq#0/0: flags=0x20002
  pwq 8: cpus=0-1 flags=0x4 nice=0 active=1 refcnt=4
    in-flight: 5694:rds_connect_worker for 0s
workqueue wg-crypt-wg0: flags=0x128
  pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=3 refcnt=4
    pending: wg_packet_encrypt_worker, wg_packet_decrypt_worker, wg_packet_tx_worker
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=2
    in-flight: 7313:wg_packet_tx_worker for 0s
workqueue wg-crypt-wg1: flags=0x128
  pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=3 refcnt=4
    pending: wg_packet_encrypt_worker, wg_packet_tx_worker, wg_packet_decrypt_worker
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=2
    pending: wg_packet_decrypt_worker
workqueue wg-crypt-wg2: flags=0x128
  pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=1 refcnt=2
    pending: wg_packet_encrypt_worker
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=2
    pending: wg_packet_encrypt_worker
pool 6: cpus=1 node=0 flags=0x0 nice=0 hung=0s workers=5 idle: 5593 8133 6885 3463
pool 8: cpus=0-1 flags=0x4 nice=0 hung=0s workers=9 idle: 1022 7920 7231 7314 12
Showing backtraces of busy workers in stalled worker pools:
pool 2: no worker in running state, cpu=0 is busy (nr_workers=4 nr_idle=4)
The pool might have trouble waking an idle worker.
Backtrace of last woken worker:
task:kworker/0:3     state:R  running task     stack:0     pid:6510  tgid:6510  ppid:2      task_flags:0x4208060 flags:0x00000010
Workqueue:  0x0 (wg-crypt-wg2)
Call trace:
 __switch_to+0x20c/0x520 arch/arm64/kernel/process.c:775 (T)
 context_switch kernel/sched/core.c:5520 [inline]
 __schedule+0xf98/0x34f4 kernel/sched/core.c:7270
 __schedule_loop kernel/sched/core.c:7347 [inline]
 schedule+0xcc/0x288 kernel/sched/core.c:7362
 worker_thread+0x200/0xc90 kernel/workqueue.c:3566
 kthread+0x2ec/0x384 kernel/kthread.c:436
 ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:854
NMI backtrace for cpu 0
CPU: 0 UID: 0 PID: 43 Comm: kworker/u8:2 Tainted: G        W           syzkaller #0 PREEMPT 
Tainted: [W]=WARN
Hardware name: linux,dummy-virt (DT)
Workqueue: events_power_efficient wg_ratelimiter_gc_entries
Call trace:
 show_stack+0x18/0x24 arch/arm64/kernel/stacktrace.c:499 (C)
 __dump_stack lib/dump_stack.c:94 [inline]
 dump_stack_lvl+0x7c/0xb0 lib/dump_stack.c:120
 dump_stack+0x1c/0x28 lib/dump_stack.c:129
 nmi_cpu_backtrace+0x198/0x228 lib/nmi_backtrace.c:123
 nmi_trigger_cpumask_backtrace+0x244/0x358 lib/nmi_backtrace.c:66
 arch_trigger_cpumask_backtrace+0x18/0x24 arch/arm64/kernel/smp.c:972
 cpumask_backtrace+0x10/0x20 lib/nmi_backtrace.c:136
 trigger_single_cpu_backtrace include/linux/nmi.h:182 [inline]
 show_cpu_pool_busy_workers kernel/workqueue.c:7852 [inline]
 show_cpu_pools_busy_workers kernel/workqueue.c:7866 [inline]
 wq_watchdog_timer_fn+0xa48/0xb5c kernel/workqueue.c:7982
 call_timer_fn+0x1b4/0xa8c kernel/time/timer.c:1748
 expire_timers kernel/time/timer.c:1799 [inline]
 __run_timers+0x890/0xb04 kernel/time/timer.c:2374
 __run_timer_base kernel/time/timer.c:2386 [inline]
 __run_timer_base kernel/time/timer.c:2378 [inline]
 run_timer_base+0x110/0x180 kernel/time/timer.c:2395
 run_timer_softirq+0x24/0x50 kernel/time/timer.c:2406
 handle_softirqs+0x2d8/0x1048 kernel/softirq.c:645
 __do_softirq+0x14/0x20 kernel/softirq.c:679
 ____do_softirq+0x10/0x20 arch/arm64/kernel/irq.c:78
 call_on_irq_stack+0x30/0x48 arch/arm64/kernel/entry.S:885
 do_softirq_own_stack+0x1c/0x40 arch/arm64/kernel/irq.c:83
 invoke_softirq kernel/softirq.c:526 [inline]
 __irq_exit_rcu+0x470/0x598 kernel/softirq.c:767
 irq_exit_rcu+0x14/0x80 kernel/softirq.c:784
 __el1_irq arch/arm64/kernel/entry-common.c:531 [inline]
 el1_interrupt+0x40/0x60 arch/arm64/kernel/entry-common.c:543
 el1h_64_irq_handler+0x18/0x30 arch/arm64/kernel/entry-common.c:548
 el1h_64_irq+0x6c/0x70 arch/arm64/kernel/entry.S:586
 __daif_local_irq_restore arch/arm64/include/asm/irqflags.h:175 [inline] (P)
 arch_local_irq_restore arch/arm64/include/asm/irqflags.h:195 [inline] (P)
 lock_release+0x3e0/0x458 kernel/locking/lockdep.c:5910 (P)
 __raw_spin_unlock include/linux/spinlock_api_smp.h:199 [inline]
 _raw_spin_unlock+0x24/0x84 kernel/locking/spinlock.c:213
 spin_unlock include/linux/spinlock.h:401 [inline]
 wg_ratelimiter_gc_entries+0x314/0x3e4 drivers/net/wireguard/ratelimiter.c:76
 process_one_work+0x830/0x1c00 kernel/workqueue.c:3387
 process_scheduled_works kernel/workqueue.c:3470 [inline]
 worker_thread+0x42c/0xc90 kernel/workqueue.c:3551
 kthread+0x2ec/0x384 kernel/kthread.c:436
 ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:854

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2026/09/11 06:12 https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux master 73ae59e97596 1fe56c0a .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu2-arm64 BUG: workqueue lockup in wg_ratelimiter_gc_entries
* Struck through repros no longer work on HEAD.