CVE-2025-40327: perf/core: Fix system hang caused by cpu-clock usage
In the Linux kernel, the following vulnerability has been resolved:
perf/core: Fix system hang caused by cpu-clock usage
cpu-clock usage by the async-profiler tool can trigger a system hang, which got bisected back to the following commit by Octavia Togami:
18dbcbfabfff ("perf: Fix the POLLHUP delivery breakage") causes this issue
The root cause of the hang is that cpu-clock is a special type of SW event which relies on hrtimers. The perfeventoverflow() callback is invoked from the hrtimer handler for cpu-clock events, and perfeventoverflow() tries to call cpuclockeventstop() to stop the event, which calls htimercancel() to cancel the hrtimer.
But that's a recursion into the hrtimer code from a hrtimer handler, which (unsurprisingly) deadlocks.
To fix this bug, use hrtimertrytocancel() instead, and set the PERFHESSTOPPED flag, which causes perfsweventhrtimer() to stop the event once it sees the PERFHESSTOPPED flag.
[ mingo: Fixed the comments and improved the changelog. ]
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Compensating control
In the cpu-clock perf event stop path, use hrtimer_try_to_cancel() instead of hrtimer_cancel() and set the PERF_HES_STOPPED flag so perf_swevent_hrtimer() stops the event without recursively deadlocking in the hrtimer handler.
Event History
Frequently Asked Questions
What is the severity of CVE-2025-40327?
CVE-2025-40327 has a high severity rating due to its potential to cause system hangs.
How do I fix CVE-2025-40327?
To fix CVE-2025-40327, ensure that you update to the latest stable version of the Linux kernel that addresses this vulnerability.
What is the impact of CVE-2025-40327?
The impact of CVE-2025-40327 includes potential system hangs when using the async-profiler tool with cpu-clock.
What versions of the Linux kernel are affected by CVE-2025-40327?
CVE-2025-40327 affects various versions of the Linux kernel prior to the application of the fix.
Who reported CVE-2025-40327?
CVE-2025-40327 was identified and resolved by Octavia Togami in the Linux kernel development.