Cloudanix VulnDB

CVE-2025-21786

None

CVSS

—

EPSS

0.2%

Published

Feb 27, 2025

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A bug in the Linux kernel's task handling code could let attackers crash systems or gain elevated access until the kernel is updated.

Exploitation
Local Privilege
Attacker needs
Local User
Complexity
High
Impact
Full Compromise
Component
OS kernel
Class
Use After Free
Remediation
Patch
Effort
Medium
Patch risk
Low

What it actually does

Use-after-free in Linux kernel workqueue due to missing pool reference during rescuer detachment after normal worker reaping was introduced.

Why it matters to the business

Linux systems may experience kernel instability, crashes, or potential privilege escalation, increasing risk for servers, containers, and embedded devices that rely on the affected kernel versions.

How an attack unfolds

An attacker triggers workqueue operations that cause the rescuer to be detached after the pool is freed, then reuses the dangling reference to corrupt memory or execute code; related kernel privilege escalation techniques seen in similar issues may be adapted.

How to fix it

Upgrade the Linux kernel to commit e7c16028a424dd35be1064a68fa318be4359310f or later stable releases that include the fix moving the pwq put after rescuer detachment.

How to confirm the fix worked

Verify the running kernel contains commit e7c16028a424dd35be1064a68fa318be4359310f; inspect workqueue.c for the corrected put order after rescuer detachment; test with targeted workqueue stress workloads.

Typical attack path

  1. Identify a workload or syscall sequence that exercises unbound workqueues with rescuers
  2. Trigger worker reaping path introduced by the referenced commit
  3. Force rescuer detachment after pool put but before reference is safely released
  4. Reuse freed pool structure via subsequent allocations to achieve memory corruption or control flow hijack

How to detect it

Review kernel logs for workqueue-related oops or use-after-free warnings; correlate with processes triggering rescuer paths; watch for unexpected kthread or pool structures in crash dumps.

What your security team should do

  • Apply the fixed kernel commit immediately on all affected systems
  • Prioritize updates for internet-facing or multi-tenant Linux hosts
  • Monitor vendor advisories for backported patches in distribution kernels
  • Enable kernel hardening features such as KASAN or lockdown mode during testing

The record

In the Linux kernel, the following vulnerability has been resolved: workqueue: Put the pwq after detaching the rescuer from the pool The commit 68f83057b913("workqueue: Reap workers via kthread_stop() and remove detach_completion") adds code to reap the normal workers but mistakenly does not handle the rescuer and also removes the code waiting for the rescuer in put_unbound_pool(), which caused a use-after-free bug reported by Cheung Wall. To avoid the use-after-free bug, the pool’s reference must be held until the detachment is complete. Therefore, move the code that puts the pwq after detaching the rescuer from the pool.

Affected packages

Ecosystem Package Introduced Fixed
AlmaLinux:10 kernel 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-64k 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-64k-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-64k-debug 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-64k-debug-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-64k-debug-devel 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-64k-debug-devel-matched 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-64k-debug-modules 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-64k-debug-modules-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-64k-debug-modules-extra 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-64k-devel 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-64k-devel-matched 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-64k-modules 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-64k-modules-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-64k-modules-extra 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-abi-stablelists 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-cross-headers 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-debug 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-debug-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-debug-devel 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-debug-devel-matched 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-debug-modules 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-debug-modules-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-debug-modules-extra 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-debug-uki-virt 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-devel 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-devel-matched 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-doc 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-headers 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-modules 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-modules-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-modules-extra 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-modules-extra-matched 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-64k 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-64k-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-64k-debug 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-64k-debug-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-64k-debug-devel 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-64k-debug-modules 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-64k-debug-modules-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-64k-debug-modules-extra 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-64k-devel 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-64k-modules 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-64k-modules-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-64k-modules-extra 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-debug 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-debug-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-debug-devel 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-debug-modules 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-debug-modules-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-debug-modules-extra 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-devel 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-modules 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-modules-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-rt-modules-extra 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-tools 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-tools-libs 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-tools-libs-devel 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-uki-virt 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-uki-virt-addons 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-zfcpdump 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-zfcpdump-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-zfcpdump-devel 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-zfcpdump-devel-matched 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-zfcpdump-modules 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-zfcpdump-modules-core 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 kernel-zfcpdump-modules-extra 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 libperf 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 perf 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 python3-perf 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 rtla 0 6.12.0-124.8.1.el10_1
AlmaLinux:10 rv 0 6.12.0-124.8.1.el10_1
AlmaLinux:9 kernel 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-64k 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-64k-core 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-64k-debug 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-64k-debug-core 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-64k-debug-devel 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-64k-debug-devel-matched 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-64k-debug-modules 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-64k-debug-modules-core 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-64k-debug-modules-extra 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-64k-devel 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-64k-devel-matched 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-64k-modules 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-64k-modules-core 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-64k-modules-extra 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-abi-stablelists 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-core 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-cross-headers 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-debug 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-debug-core 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-debug-devel 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-debug-devel-matched 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-debug-modules 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-debug-modules-core 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-debug-modules-extra 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-debug-uki-virt 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-devel 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-devel-matched 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-doc 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-headers 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-modules 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-modules-core 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-modules-extra 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-rt 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-rt-64k 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-rt-64k-core 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-rt-64k-debug 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-rt-64k-debug-core 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-rt-64k-debug-devel 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-rt-64k-debug-modules 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-rt-64k-debug-modules-core 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-rt-64k-debug-modules-extra 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-rt-64k-devel 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-rt-64k-modules 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-rt-64k-modules-core 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-rt-64k-modules-extra 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-rt-core 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-rt-debug 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-rt-debug-core 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-rt-debug-devel 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-rt-debug-modules 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-rt-debug-modules-core 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-rt-debug-modules-extra 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-rt-devel 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-rt-modules 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-rt-modules-core 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-rt-modules-extra 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-tools 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-tools-libs 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-tools-libs-devel 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-uki-virt 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-uki-virt-addons 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-zfcpdump 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-zfcpdump-core 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-zfcpdump-devel 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-zfcpdump-devel-matched 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-zfcpdump-modules 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-zfcpdump-modules-core 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 kernel-zfcpdump-modules-extra 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 libperf 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 perf 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 python3-perf 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 rtla 0 5.14.0-611.5.1.el9_7
AlmaLinux:9 rv 0 5.14.0-611.5.1.el9_7
Debian:13 linux 0 No fix
Debian:13 linux 0 6.12.16-1
Linux Kernel 6.11.0 6.12.16
Ubuntu:24.10 linux-aws 0 6.11.0-1014.15

Related vulnerabilities