CVE-2026-64073 Details
Description
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.
A use-after-free vulnerability has been identified in the Linux kernel's irq_work component, specifically in the irq_work_single() function when the PREEMPT_RT configuration is enabled. This issue arises because non-HARD irq_work is processed in per-CPU kernel threads, managed by run_irq_workd(). The irq_work_sync() function uses rcuwait() to wait for the BUSY state to clear. However, after irq_work_single() clears BUSY using atomic_cmpxchg(), it still accesses the @work variable for irq_work_is_hard() and rcuwait_wake_up(). If an irq_work_sync() call is made from another CPU after BUSY has been cleared, it can see BUSY==0, return, and free the work before the previous accesses are finished, leading to a use-after-free condition.
The vulnerability has been fixed in the Linux kernel. Users should upgrade to the latest version where this fix is applied.
Metrics
CVSS 4.0 Severity and Vector Strings:
No CVSS 4.0 data is available for this CVE.
CVSS 3.x Severity and Vector Strings:
No data available for CVSS Version 2.0 on this CVE.
No SSVC data is available for this CVE.
References to Advisories, Solutions, and Tools
By selecting these links, you will be leaving this site. These are references gathered from the official CVE record and are not endorsed by Volerion.
| URL | Source(s) | Tag(s) |
|---|---|---|
| https://git.kernel.org/stable/c/18c0456ea2615b1a743a6db739c74411c3b42bc6 | kernel.org | Patch |
| https://git.kernel.org/stable/c/2dc79362302922cb18f35e262712b5e58de65442 | kernel.org | Patch |
| https://git.kernel.org/stable/c/684a78183c54c23e70d1cba320f7fc184604210b | kernel.org | Patch |
| https://git.kernel.org/stable/c/81b582784518196eff1050212a046bc29d3a05dd | kernel.org | Patch |
| https://git.kernel.org/stable/c/91840be8f710370607f949a627e070896faeddb8 | kernel.org | Patch |
| https://git.kernel.org/stable/c/eef4f71b46a9929ac33e968538c9dd5d96a02460 | kernel.org | Patch |
Weakness Enumeration
| CWE-ID | CWE Name | Source |
|---|---|---|
| CWE-416 | Use After Free | [email protected] |
Affected Products
| Product | Versions |
|---|---|
| linux linux kernel | >= 5.16, < 6.1.175 >= 6.2, < 6.6.142 >= 6.7, < 6.12.92 >= 6.13, < 6.18.34 >= 6.19, < 7.0.11 7.1 rc1 7.1 rc2 7.1 rc3 |
CPE
Remediation
| |
Change History
3 change records found show changes
| Date | Action | Recorded By |
|---|---|---|
| Sep 3, 2026 | Initial Analysis | [email protected] |
| Jul 20, 2026 | CVE Modified | kernel.org |
| Jul 19, 2026 | New CVE Received | kernel.org |