CVE-2026-23415
Linux Kernel vulnerability analysis and mitigation

Overview

CVE-2026-23415 is a use-after-free (UAF) vulnerability in the Linux kernel's futex subsystem, specifically in the interaction between futex_key_to_node_opt() and vma_replace_policy(). It was published on April 2, 2026, and affects Linux kernel versions 6.16 through 6.18.20, 6.19 through 6.19.10, and 7.0-rc1 through 7.0-rc5. The vulnerability carries a CVSS v3.1 base score of 7.8 (High) (Github Advisory).

Technical details

The root cause is a race condition classified as CWE-416 (Use After Free). During futex_key_to_node_opt() execution, vma->vm_policy is read under speculative mmap lock and RCU protection. Concurrently, a call to mbind() may invoke vma_replace_policy(), which immediately frees the old mempolicy object via kmem_cache_free(). This creates a window where __futex_key_to_node() dereferences the now-freed mempolicy pointer, resulting in a use-after-free read of mpol->mode (a 2-byte read at the freed address). The fix involves adding RCU-deferred freeing to __mpol_put() to ensure the mempolicy object remains valid until all RCU readers have completed (Github Advisory).

Impact

A local attacker with low privileges could exploit this race condition to read sensitive kernel memory (confidentiality impact) or trigger a kernel panic/system instability (availability impact). The KASAN report confirms a slab-use-after-free read in kernel/futex/core.c, which could potentially be leveraged for information disclosure of kernel heap contents or denial of service. Integrity impact is also rated High in the CVSS scoring, suggesting the possibility of memory corruption under certain conditions (Github Advisory).

Exploitation steps

  1. Gain local access: Obtain a low-privilege shell on a system running a vulnerable Linux kernel version (6.16–6.18.20, 6.19–6.19.10, or 7.0-rc1 through 7.0-rc5).
  2. Set up concurrent threads: Create two threads — one that repeatedly calls futex-related system calls (e.g., futex(FUTEX_WAIT)) to trigger futex_key_to_node_opt() and get_futex_key(), and another that repeatedly calls mbind() on the same memory region to trigger vma_replace_policy().
  3. Race the window: Time the mbind() call to free the old mempolicy object (kmem_cache_free()) while the futex thread is mid-execution in __futex_key_to_node(), reading vma->vm_policy.
  4. Trigger UAF read: When the race is won, __futex_key_to_node() dereferences the freed mempolicy pointer and reads mpol->mode from freed memory, potentially leaking kernel heap data or causing a kernel crash.
  5. Leverage outcome: Use the leaked kernel memory contents for further exploitation (e.g., KASLR bypass) or accept the denial-of-service outcome if a kernel panic is triggered (Github Advisory).

Indicators of compromise

  • Logs: Kernel logs (dmesg) showing BUG: KASAN: slab-use-after-free in __futex_key_to_node (kernel/futex/core.c:349) or similar KASAN reports.
  • Logs: Kernel call traces referencing __asan_load2, __futex_key_to_node, and get_futex_key in sequence.
  • Process: Unusual processes making high-frequency concurrent futex and mbind() system calls on the same memory region, detectable via strace or auditd syscall logging.
  • System: Unexpected kernel panics or system instability on hosts running affected kernel versions, particularly in multi-threaded workloads involving NUMA memory policy changes.

Mitigation and workarounds

Update the Linux kernel to a patched version: 6.18.21 or later, 6.19.11 or later, or 7.0-rc6 or later. The fix is implemented via three kernel commits: 190a8c48ff623c3d67cb295b4536a660db2012aa, 7e196194ea27bd49adf3551e2aceb83498eb73fe, and 853f70c67d1b37e368fdcb3e328c4b8c04f53ac0. No configuration-based workaround is known; upgrading the kernel is the only reliable remediation. Kernel updates should be tested in a staging environment and deployed according to organizational change management procedures (Github Advisory).

Community reactions

The vulnerability was announced via the Linux kernel CVE mailing list (lore.kernel.org) on April 2, 2026, and subsequently tracked by multiple vulnerability databases including ENISA EUVD (EUVD-2026-18196), VulDB, and CIRCL. The Yocto Project security mailing list discussed the issue across multiple messages in late April and May 2026, indicating downstream embedded Linux distributions are tracking the fix. Social media activity was limited to automated CVE notification accounts on Bluesky and Mastodon/infosec.exchange.

Additional resources


SourceThis report was generated using AI

Related Linux Kernel vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-64557NONEN/A
  • Linux Kernel logoLinux Kernel
  • kernel-rt-selftests-internal
NoNoJul 29, 2026
CVE-2026-64556NONEN/A
  • Linux Kernel logoLinux Kernel
  • kernel-64k-devel
NoNoJul 29, 2026
CVE-2026-64555NONEN/A
  • Linux Kernel logoLinux Kernel
  • linux-azure-fde-6.14
NoNoJul 27, 2026
CVE-2026-64554NONEN/A
  • Linux Kernel logoLinux Kernel
  • linux-gcp-6.14
NoYesJul 27, 2026
CVE-2026-64553NONEN/A
  • Linux Kernel logoLinux Kernel
  • kernel-rt-64k-debug-modules-internal
NoYesJul 27, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management