CVE-2025-39744 Details
Description
In the Linux kernel, the following vulnerability has been resolved: rcu: Fix rcu_read_unlock() deadloop due to IRQ work During rcu_read_unlock_special(), if this happens during irq_exit(), we can lockup if an IPI is issued. This is because the IPI itself triggers the irq_exit() path causing a recursive lock up. This is precisely what Xiongfeng found when invoking a BPF program on the trace_tick_stop() tracepoint As shown in the trace below. Fix by managing the irq_work state correctly. irq_exit() __irq_exit_rcu() /* in_hardirq() returns false after this */ preempt_count_sub(HARDIRQ_OFFSET) tick_irq_exit() tick_nohz_irq_exit() tick_nohz_stop_sched_tick() trace_tick_stop() /* a bpf prog is hooked on this trace point */ __bpf_trace_tick_stop() bpf_trace_run2() rcu_read_unlock_special() /* will send a IPI to itself */ irq_work_queue_on(&rdp->defer_qs_iw, rdp->cpu); A simple reproducer can also be obtained by doing the following in tick_irq_exit(). It will hang on boot without the patch: static inline void tick_irq_exit(void) { + rcu_read_lock(); + WRITE_ONCE(current->rcu_read_unlock_special.b.need_qs, true); + rcu_read_unlock(); + [neeraj: Apply Frederic's suggested fix for PREEMPT_RT]
A deadlock vulnerability has been identified in the Linux kernel's Read-Copy-Update (RCU) mechanism, specifically within the RCU read unlock process. This issue arises when an Interrupt Processing Inter-Processor Interrupt (IPI) is issued during the 'irq_exit' phase, leading to a recursive lockup. The vulnerability was discovered by Xiongfeng Wang while executing a BPF program linked to the 'trace_tick_stop' tracepoint. The deadlock occurs because the IPI triggers the 'irq_exit' path, creating a conflict that can lock up the system. The vulnerability affects the Linux kernel stable tree.
Users can apply the available patch to address this vulnerability. The patch is included in the official Linux kernel repository.
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/1cfa244f7198d325594e627574930b7b91df5bfe | kernel.org | Patch |
| https://git.kernel.org/stable/c/56c5ef194f4509df63fc0f7a91ea5973ce479b1e | kernel.org | Patch |
| https://git.kernel.org/stable/c/b41642c87716bbd09797b1e4ea7d904f06c39b7b | kernel.org | Patch |
| https://git.kernel.org/stable/c/ddebb2a7677673cf4438a04e1a48b8ed6b0c8e9a | kernel.org | Patch |
| https://git.kernel.org/stable/c/e7a375453cca2b8a0d2fa1b82b913f3fed7c0507 | kernel.org | Patch |
Weakness Enumeration
| CWE-ID | CWE Name | Source |
|---|---|---|
| CWE-125 | Out-of-bounds Read | [email protected] |
Affected Products
| Product | Versions |
|---|---|
| linux linux kernel | < 6.6.103 >= 6.7, < 6.12.43 >= 6.13, < 6.15.11 >= 6.16, < 6.16.2 |
CPE
Remediation
| |
Change History
3 change records found show changes
| Date | Action | Recorded By |
|---|---|---|
| Jun 17, 2026 | CVE Modified | kernel.org |
| Nov 25, 2025 | Initial Analysis | [email protected] |
| Sep 11, 2025 | New CVE Received | kernel.org |