CVE-2026-43402
Use-After-Free in Linux Kernel kthread Exit Path
Publication date: 2026-05-08
Last updated on: 2026-05-08
Assigner: kernel.org
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| linux | linux_kernel | * |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-UNKNOWN |
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?
This vulnerability in the Linux kernel involves improper cleanup during the exit of kernel threads (kthreads). Specifically, when a kthread exits via the make_task_dead() function, it bypasses the usual kthread_exit() cleanup path and misses cleaning up the affinity_node. As a result, the memory for the kthread structure is freed while still linked in a global list, leading to use-after-free conditions.
This use-after-free occurs because another kthread later attempts to remove the freed node from the global list, causing writes through dangling pointers into memory that has already been freed and potentially reused. This corrupts function pointers related to the pid structure, which can cause crashes.
The fix consolidates all kthread exit paths to ensure that kthread-specific cleanup always happens regardless of how the thread exits, preventing the use-after-free condition.
How can this vulnerability impact me? :
This vulnerability can cause kernel crashes due to corrupted function pointers resulting from use-after-free memory errors. Such crashes can lead to system instability, denial of service, or unexpected behavior in the Linux kernel.
What immediate steps should I take to mitigate this vulnerability?
The vulnerability is resolved by consolidating all kthread exit paths to ensure proper cleanup and prevent use-after-free conditions.
Immediate mitigation involves updating the Linux kernel to a version that includes the fix where kthread_exit() is turned into a macro calling do_exit(), and kthread_do_exit() is added to guarantee kthread-specific cleanup regardless of the exit path.