CVE-2026-64073 in Linuxinfo

Summary

by MITRE • 07/19/2026

In the Linux kernel, the following vulnerability has been resolved:

irq_work: Fix use-after-free in irq_work_single() on PREEMPT_RT

On PREEMPT_RT, non-HARD irq_work runs in per-CPU kthreads via run_irq_workd(), so irq_work_sync() uses rcuwait() to wait for BUSY==0.

After irq_work_single() clears BUSY via atomic_cmpxchg(), it still dereferences @work for irq_work_is_hard() and rcuwait_wake_up().

An irq_work_sync() caller on another CPU that enters after BUSY is cleared can observe BUSY==0 immediately, return, and free the work before those accesses complete — causing a use-after-free.

Fix this by wrapping run_irq_workd() in guard(rcu)() so that the entire irq_work_single() execution is within an RCU read-side critical section. Then add synchronize_rcu() in irq_work_sync() after rcuwait_wait_event() to ensure the caller waits for the RCU grace period before returning, preventing premature frees.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Analysis

by VulDB Data Team • 07/19/2026

The vulnerability described represents a critical use-after-free condition in the Linux kernel's PREEMPT_RT real-time configuration, specifically within the irq_work subsystem that handles interrupt work items. This issue manifests when non-HARD interrupt work is executed through per-CPU kthreads managed by run_irq_workd(), creating a race condition between the completion of irq_work_single() and the potential freeing of work structures by other CPU cores.

The technical flaw occurs during the execution flow where irq_work_single() clears the BUSY flag using atomic_cmpxchg() but continues to dereference the work structure for subsequent operations including irq_work_is_hard() and rcuwait_wake_up(). When another CPU core executing irq_work_sync() observes BUSY==0 immediately after the flag is cleared, it returns from the synchronization function and proceeds to free the work item before the original execution context completes its dereference operations. This race condition creates a classic use-after-free scenario where memory that has been freed is still being accessed, potentially leading to system instability or privilege escalation.

The operational impact of this vulnerability extends beyond simple system crashes, as it represents a fundamental race condition in kernel-level concurrency management that could be exploited to gain unauthorized access to system resources. The issue specifically affects PREEMPT_RT configurations where real-time scheduling requirements necessitate different execution patterns for interrupt work handling, making the vulnerability particularly concerning for systems requiring deterministic response times and high reliability.

The fix implemented addresses this by employing RCU (Read-Copy-Update) guard mechanisms to ensure that the entire irq_work_single() execution remains within an RCU read-side critical section, preventing premature freeing of work structures. Additionally, synchronize_rcu() is added in irq_work_sync() after rcuwait_wait_event() to guarantee that callers wait for the complete RCU grace period before returning and potentially freeing memory. This approach aligns with standard kernel security practices for managing concurrent access to shared data structures and prevents the race condition that leads to use-after-free conditions.

This vulnerability type maps directly to CWE-416, which describes the use of freed memory condition, and relates to ATT&CK techniques involving privilege escalation through kernel exploitation. The fix demonstrates proper implementation of RCU synchronization primitives to maintain memory safety in concurrent kernel operations, following established patterns for handling race conditions in real-time kernel configurations where timing requirements are critical for system functionality and security guarantees.

Responsible

Linux

Reservation

07/19/2026

Disclosure

07/19/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

low

Sources

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!