Vulnerability · Published May 8, 2026 · Assigned by Linux

CVE-2026-43402kthread: consolidate kthread exit paths to prevent use-after-free

Critical 9.8

In plain English

A critical-severity use-after-free in Linux from Linux. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.6% (higher than 47% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS 3.1)9.8Critical
Exploit odds (30 days)0.6%top 53.4% of all CVEs
Exploited in the wildNo reportsCISA SSVC: none
Attack toolingNoneno public tooling known

Official description

In the Linux kernel, the following vulnerability has been resolved: kthread: consolidate kthread exit paths to prevent use-after-free Guillaume reported crashes via corrupted RCU callback function pointers during KUnit testing. The crash was traced back to the pidfs rhashtable conversion which replaced the 24-byte rb_node with an 8-byte rhash_head in struct pid, shrinking it from 160 to 144 bytes. struct kthread (without CONFIG_BLK_CGROUP) is also 144 bytes. With CONFIG_SLAB_MERGE_DEFAULT and SLAB_HWCACHE_ALIGN both round up to 192 bytes and share the same slab cache. struct pid.rcu.func and struct kthread.affinity_node both sit at offset 0x78. When a kthread exits via make_task_dead() it bypasses kthread_exit() and misses the affinity_node cleanup. free_kthread_struct() frees the memory while the node is still linked into the global kthread_affinity_list. A subsequent list_del() by another kthread writes through dangling list pointers into the freed and reused memory, corrupting the pid's rcu.func pointer. Instead of patching free_kthread_struct() to handle the missed cleanup, consolidate all kthread exit paths. Turn kthread_exit() into a macro that calls do_exit() and add kthread_do_exit() which is called from do_exit() for any task with PF_KTHREAD set. This guarantees that kthread-specific cleanup always happens regardless of the exit path - make_task_dead(), direct do_exit(), or kthread_exit(). Replace __to_kthread() with a new tsk_is_kthread() accessor in the public header. Export do_exit() since module code using the kthread_exit() macro now needs it directly.

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
Debian:14linux6.19.10-1DEBIAN-CVE-2026-43402
Ubuntu:25.10linux6.17.0-40.40USN-8490-1
Ubuntu:25.10linux6.17.0-40.40UBUNTU-CVE-2026-43402
Ubuntu:22.04:LTSlinux-allwinner-5.19no fix listedUBUNTU-CVE-2026-43402
Ubuntu:25.10linux-aws6.17.0-1019.19UBUNTU-CVE-2026-43402
Ubuntu:25.10linux-aws6.17.0-1019.19USN-8490-1
Ubuntu:22.04:LTSlinux-aws-5.19no fix listedUBUNTU-CVE-2026-43402
Ubuntu:24.04:LTSlinux-aws-6.14no fix listedUBUNTU-CVE-2026-43402
Ubuntu:24.04:LTSlinux-aws-6.176.17.0-1019.19~24.04.1UBUNTU-CVE-2026-43402
Ubuntu:24.04:LTSlinux-aws-6.176.17.0-1019.19~24.04.1USN-8490-1
Ubuntu:22.04:LTSlinux-aws-6.2no fix listedUBUNTU-CVE-2026-43402
Ubuntu:22.04:LTSlinux-aws-6.5no fix listedUBUNTU-CVE-2026-43402
Ubuntu:25.10linux-azureno fix listedUBUNTU-CVE-2026-43402
Ubuntu:22.04:LTSlinux-azure-5.19no fix listedUBUNTU-CVE-2026-43402
Ubuntu:24.04:LTSlinux-azure-6.11no fix listedUBUNTU-CVE-2026-43402
Ubuntu:24.04:LTSlinux-azure-6.14no fix listedUBUNTU-CVE-2026-43402
Ubuntu:24.04:LTSlinux-azure-6.176.17.0-1021.21~24.04.1UBUNTU-CVE-2026-43402
Ubuntu:22.04:LTSlinux-azure-6.2no fix listedUBUNTU-CVE-2026-43402
Ubuntu:22.04:LTSlinux-azure-6.5no fix listedUBUNTU-CVE-2026-43402
Ubuntu:25.10linux-azure-fdeno fix listedUBUNTU-CVE-2026-43402
Ubuntu:22.04:LTSlinux-azure-fde-5.19no fix listedUBUNTU-CVE-2026-43402
Ubuntu:24.04:LTSlinux-azure-fde-6.14no fix listedUBUNTU-CVE-2026-43402
Ubuntu:22.04:LTSlinux-azure-fde-6.2no fix listedUBUNTU-CVE-2026-43402
Ubuntu:24.04:LTSlinux-azure-nvidia-6.14no fix listedUBUNTU-CVE-2026-43402
Ubuntu:25.10linux-gcp6.17.0-1020.22UBUNTU-CVE-2026-43402
Ubuntu:25.10linux-gcp6.17.0-1020.22USN-8490-1
Ubuntu:22.04:LTSlinux-gcp-5.19no fix listedUBUNTU-CVE-2026-43402
Ubuntu:24.04:LTSlinux-gcp-6.11no fix listedUBUNTU-CVE-2026-43402
Ubuntu:24.04:LTSlinux-gcp-6.14no fix listedUBUNTU-CVE-2026-43402
Ubuntu:24.04:LTSlinux-gcp-6.176.17.0-1020.22~24.04.1USN-8490-1
Ubuntu:24.04:LTSlinux-gcp-6.176.17.0-1020.22~24.04.1UBUNTU-CVE-2026-43402
Ubuntu:22.04:LTSlinux-gcp-6.2no fix listedUBUNTU-CVE-2026-43402
Ubuntu:22.04:LTSlinux-gcp-6.5no fix listedUBUNTU-CVE-2026-43402
Ubuntu:22.04:LTSlinux-hwe-5.19no fix listedUBUNTU-CVE-2026-43402
Ubuntu:24.04:LTSlinux-hwe-6.11no fix listedUBUNTU-CVE-2026-43402
Ubuntu:24.04:LTSlinux-hwe-6.14no fix listedUBUNTU-CVE-2026-43402
Ubuntu:24.04:LTSlinux-hwe-6.176.17.0-40.40~24.04.1USN-8545-1
Ubuntu:24.04:LTSlinux-hwe-6.176.17.0-40.40~24.04.1UBUNTU-CVE-2026-43402
Ubuntu:22.04:LTSlinux-hwe-6.2no fix listedUBUNTU-CVE-2026-43402
Ubuntu:22.04:LTSlinux-hwe-6.5no fix listedUBUNTU-CVE-2026-43402
Ubuntu:22.04:LTSlinux-intel-iot-realtimeno fix listedUBUNTU-CVE-2026-43402
Ubuntu:22.04:LTSlinux-lowlatency-hwe-5.19no fix listedUBUNTU-CVE-2026-43402
Ubuntu:24.04:LTSlinux-lowlatency-hwe-6.11no fix listedUBUNTU-CVE-2026-43402
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.2no fix listedUBUNTU-CVE-2026-43402
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.5no fix listedUBUNTU-CVE-2026-43402
Ubuntu:24.04:LTSlinux-nvidia-6.11no fix listedUBUNTU-CVE-2026-43402
Ubuntu:24.04:LTSlinux-nvidia-6.176.17.0-1026.26UBUNTU-CVE-2026-43402
Ubuntu:22.04:LTSlinux-nvidia-6.2no fix listedUBUNTU-CVE-2026-43402
Ubuntu:22.04:LTSlinux-nvidia-6.5no fix listedUBUNTU-CVE-2026-43402
Ubuntu:22.04:LTSlinux-oem-5.17no fix listedUBUNTU-CVE-2026-43402
Ubuntu:22.04:LTSlinux-oem-6.0no fix listedUBUNTU-CVE-2026-43402
Ubuntu:22.04:LTSlinux-oem-6.1no fix listedUBUNTU-CVE-2026-43402
Ubuntu:24.04:LTSlinux-oem-6.11no fix listedUBUNTU-CVE-2026-43402
Ubuntu:24.04:LTSlinux-oem-6.14no fix listedUBUNTU-CVE-2026-43402
Ubuntu:24.04:LTSlinux-oem-6.176.17.0-1028.28USN-8491-1
Ubuntu:24.04:LTSlinux-oem-6.176.17.0-1028.28UBUNTU-CVE-2026-43402
Ubuntu:22.04:LTSlinux-oem-6.5no fix listedUBUNTU-CVE-2026-43402
Ubuntu:24.04:LTSlinux-oem-6.8no fix listedUBUNTU-CVE-2026-43402
Ubuntu:25.10linux-oracle6.17.0-1018.18USN-8490-1
Ubuntu:25.10linux-oracle6.17.0-1018.18UBUNTU-CVE-2026-43402
Ubuntu:24.04:LTSlinux-oracle-6.14no fix listedUBUNTU-CVE-2026-43402
Ubuntu:24.04:LTSlinux-oracle-6.176.17.0-1018.18~24.04.1UBUNTU-CVE-2026-43402
Ubuntu:24.04:LTSlinux-oracle-6.176.17.0-1018.18~24.04.1USN-8490-1
Ubuntu:22.04:LTSlinux-oracle-6.5no fix listedUBUNTU-CVE-2026-43402
Ubuntu:25.10linux-raspi6.17.0-1021.21USN-8546-1
Ubuntu:25.10linux-raspi6.17.0-1021.21UBUNTU-CVE-2026-43402
Ubuntu:24.04:LTSlinux-raspi-realtimeno fix listedUBUNTU-CVE-2026-43402
Ubuntu:22.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-43402
Ubuntu:24.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-43402
Ubuntu:25.10linux-realtime6.17.0-1017.19UBUNTU-CVE-2026-43402
Ubuntu:25.10linux-realtime6.17.0-1017.19USN-8490-2
Ubuntu:22.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2026-43402
Ubuntu:24.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2026-43402
Ubuntu:25.10linux-riscv6.17.0-40.40.1UBUNTU-CVE-2026-43402
Ubuntu:22.04:LTSlinux-riscv-5.19no fix listedUBUNTU-CVE-2026-43402
Ubuntu:24.04:LTSlinux-riscv-6.14no fix listedUBUNTU-CVE-2026-43402
Ubuntu:24.04:LTSlinux-riscv-6.17no fix listedUBUNTU-CVE-2026-43402
Ubuntu:22.04:LTSlinux-riscv-6.5no fix listedUBUNTU-CVE-2026-43402
Ubuntu:22.04:LTSlinux-starfive-5.19no fix listedUBUNTU-CVE-2026-43402
Ubuntu:22.04:LTSlinux-starfive-6.2no fix listedUBUNTU-CVE-2026-43402
Ubuntu:22.04:LTSlinux-starfive-6.5no fix listedUBUNTU-CVE-2026-43402

Affected products (as reported)

VendorProductVersions
Linux Linux 4d13f4304fa43471bfea101658a11feec7b28ac0 – before 4729c7b00a347fd37d0cbc265b85f2884c3e06b64d13f4304fa43471bfea101658a11feec7b28ac0 – before 5a591d7a5e48d30100943940a30a6ab41b15c6724d13f4304fa43471bfea101658a11feec7b28ac0 – before 28aaa9c39945b7925a1cc1d513c8f21ed38f5e4f
Linux Linux 6.14

Weakness: CWE-416 · Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

References