BUG: workqueue lockup in key_garbage_collector

Status: upstream: reported on 2026/10/17 11:26
Subsystems: keyrings lsm
Labels: prio:high
[Documentation on labels]
Reported-by: syzbot+c15de43f1e7fffbb7b9b@syzkaller.appspotmail.com
First crash: 33d, last: 4h00m
▶ ▼ ✨ AI Jobs (3)
ID Workflow Result Correct Bug Created Started Finished Revision
28093447 repro-c 💥 BUG: workqueue lockup in key_garbage_collector 2026/10/16 20:32 2026/10/16 20:32 2026/10/17 01:29 432c0077
24bae246 repro-c 💥 BUG: workqueue lockup in key_garbage_collector 2026/09/19 11:41 2026/09/19 11:41 2026/09/19 16:04 853b104b
08467288 assessment-security DenialOfService: ✅ Exploitable: ❌ FilesystemTrigger: ❌ NetworkTrigger: ❌ PeripheralTrigger: ❌ RemoteTrigger: ❌ Unprivileged: ✅ UserNamespace: ✅ VMGuestTrigger: ✅ VMHostTrigger: ❌ ❓ BUG: workqueue lockup in key_garbage_collector 2026/09/16 00:37 2026/09/16 00:37 2026/09/16 00:43 2daa4bb5
▶ ▼ Discussions (1)
Title Replies (including bot) Last reply
[syzbot] [keyrings?] [lsm?] BUG: workqueue lockup in key_garbage_collector 0 (1) 2026/10/17 11:26

Sample crash report:
net_ratelimit: 9 callbacks suppressed
net_ratelimit: 13 callbacks suppressed
BUG: workqueue lockup - pool cpus=1 node=0 flags=0x0 nice=0 stuck for 41s!
Showing busy workqueues and worker pools:
workqueue events: flags=0x100
  pwq 2: cpus=0 node=0 flags=0x0 nice=0 active=4 refcnt=5
    in-flight: 10:xfrm_state_gc_task for 35s
    pending: 3*nsim_dev_hwstats_traffic_work
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=2 refcnt=3
    in-flight: 4469:key_garbage_collector for 42s ,865:request_firmware_work_func for 87s
workqueue events_unbound: flags=0x2
  pwq 8: cpus=0-1 flags=0x4 nice=0 active=1 refcnt=2
    in-flight: 3359:toggle_allocation_gate for 42s
workqueue hci1: flags=0x20012
  pwq 9: cpus=0-1 node=0 flags=0x4 nice=-20 active=1 refcnt=4
    in-flight: 4715:hci_error_reset for 40s
workqueue hci3: flags=0x20012
  pwq 9: cpus=0-1 node=0 flags=0x4 nice=-20 active=1 refcnt=4
    in-flight: 51:hci_error_reset for 38s
workqueue wg-crypt-wg0: flags=0x128
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=2
    pending: wg_packet_encrypt_worker
workqueue wg-kex-wg1: flags=0x124
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=2
    pending: wg_packet_handshake_receive_worker
workqueue wg-crypt-wg1: flags=0x128
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=2
    pending: wg_packet_encrypt_worker
workqueue wg-kex-wg2: flags=0x124
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=2
    pending: wg_packet_handshake_receive_worker
workqueue wg-crypt-wg2: flags=0x128
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=2 refcnt=3
    pending: wg_packet_decrypt_worker, wg_packet_tx_worker
workqueue wg-kex-wg0: flags=0x124
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=2
    pending: wg_packet_handshake_receive_worker
workqueue wg-crypt-wg0: flags=0x128
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=2
    pending: wg_packet_encrypt_worker
workqueue wg-crypt-wg1: flags=0x128
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=3 refcnt=4
    pending: wg_packet_encrypt_worker, wg_packet_tx_worker, wg_packet_decrypt_worker
workqueue wg-kex-wg2: flags=0x124
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=2
    pending: wg_packet_handshake_receive_worker
workqueue wg-crypt-wg2: flags=0x128
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=3 refcnt=4
    pending: wg_packet_tx_worker, wg_packet_decrypt_worker, wg_packet_encrypt_worker
workqueue wg-crypt-wg0: flags=0x128
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=2
    pending: wg_packet_encrypt_worker
workqueue wg-crypt-wg1: flags=0x128
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=2 refcnt=3
    pending: wg_packet_decrypt_worker, wg_packet_encrypt_worker
workqueue wg-kex-wg2: flags=0x124
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=2
    pending: wg_packet_handshake_receive_worker
workqueue wg-crypt-wg2: flags=0x128
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=3 refcnt=4
    pending: wg_packet_decrypt_worker, wg_packet_encrypt_worker, wg_packet_tx_worker
workqueue wg-kex-wg0: flags=0x124
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=2
    pending: wg_packet_handshake_receive_worker
workqueue wg-crypt-wg0: flags=0x128
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=2
    pending: wg_packet_encrypt_worker
workqueue wg-kex-wg1: flags=0x124
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=2
    pending: wg_packet_handshake_receive_worker
workqueue wg-crypt-wg1: flags=0x128
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=2
    pending: wg_packet_encrypt_worker
workqueue wg-kex-wg2: flags=0x124
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=2
    pending: wg_packet_handshake_receive_worker
workqueue wg-crypt-wg2: flags=0x128
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=2 refcnt=3
    pending: wg_packet_decrypt_worker, wg_packet_encrypt_worker
workqueue wg-crypt-wg1: flags=0x128
  pwq 6: cpus=1 node=0 flags=0x0 nice=0 active=1 refcnt=2
    pending: wg_packet_encrypt_worker
pool 2: cpus=0 node=0 flags=0x0 nice=0 hung=0s workers=8 idle: 4812 9 4891 4805 1153 4710 4819
pool 6: cpus=1 node=0 flags=0x0 nice=0 hung=41s workers=8 idle: 24 4836 26 4798 4813 4823
pool 8: cpus=0-1 flags=0x4 nice=0 hung=0s workers=9 idle: 13 12 40 87 1164 1418 1420 42
pool 9: cpus=0-1 node=0 flags=0x4 nice=-20 hung=0s workers=7 idle: 4709 5602 4714 4712 4723
Showing backtraces of busy workers in stalled worker pools:
pool 6:
task:kworker/1:3     state:R  running task     stack:0     pid:4469  tgid:4469  ppid:2      task_flags:0x4208060 flags:0x00000010
Workqueue: events key_garbage_collector
Call trace:
 __switch_to+0x2b4/0x6e4 arch/arm64/kernel/process.c:775 (T)
 context_switch kernel/sched/core.c:5533 [inline]
 __schedule+0x135c/0x2b00 kernel/sched/core.c:7284
 __schedule_loop kernel/sched/core.c:7361 [inline]
 schedule+0x13c/0x20c kernel/sched/core.c:7376
 schedule_timeout+0xc0/0x28c kernel/time/sleep_timeout.c:75
 do_wait_for_common kernel/sched/completion.c:100 [inline]
 __wait_for_common kernel/sched/completion.c:121 [inline]
 wait_for_common+0x220/0x394 kernel/sched/completion.c:132
 wait_for_completion+0x18/0x24 kernel/sched/completion.c:153
 synchronize_rcu_normal+0x28c/0x350 kernel/rcu/tree.c:3355
 synchronize_rcu+0x1f4/0x258 kernel/rcu/tree.c:3413
 key_garbage_collector+0x728/0x894 security/keys/gc.c:297
 process_one_work kernel/workqueue.c:3396 [inline]
 process_scheduled_works+0x91c/0x1250 kernel/workqueue.c:3479
 worker_thread+0x798/0xbd0 kernel/workqueue.c:3560
 kthread+0x304/0x3d4 kernel/kthread.c:436
 ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:854
net_ratelimit: 33 callbacks suppressed
net_ratelimit: 58 callbacks suppressed

Crashes (6):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2026/10/17 19:11 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 7a19f0cc94ad 432c0077 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 BUG: workqueue lockup in key_garbage_collector
2026/10/17 11:25 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 7a19f0cc94ad 432c0077 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 BUG: workqueue lockup in key_garbage_collector
2026/10/13 04:50 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 01850bca59c9 745a967f .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 BUG: workqueue lockup in key_garbage_collector
2026/10/04 09:11 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci fe98fb51bf62 57bbd979 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 BUG: workqueue lockup in key_garbage_collector
2026/09/27 19:51 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci e8e60d3ddd25 a3c7249d .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 BUG: workqueue lockup in key_garbage_collector
2026/09/14 06:53 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 5445d6419962 70a60e12 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 BUG: workqueue lockup in key_garbage_collector
* Struck through repros no longer work on HEAD.