CVE-2026-31480
Medium · 5.5CVSS
5.5
EPSS
0.1%
Published
Apr 22, 2026
CISA due date
—
Cloudanix analysis
A local user may be able to freeze an affected Linux system by triggering a flaw in kernel tracing during CPU state changes.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Race Condition
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
This is a local Linux kernel race/deadlock vulnerability in the tracing osnoise subsystem during CPU hotplug operations. A lock-order inversion between the tracing interface mutex and CPU hotplug read/write locks can cause a kernel thread stop operation to wait indefinitely while another task waits on the same lock chain. Successful triggering does not expose data or allow code execution, but it can cause a system-wide availability failure, including hung tasks, stalled CPU offline operations, or a kernel that becomes unresponsive until rebooted.
Why it matters to the business
The primary risk is service disruption on Linux systems where tracing/osnoise functionality and CPU hotplug operations are available. An attacker with local access and sufficient ability to interact with tracing or CPU state controls may be able to deliberately hang the system, causing downtime for workloads hosted on the affected machine. The current public exploitation signal is low: EPSS is approximately 0.001, unchanged over 30 days, it is not listed in CISA KEV, and no mature public exploit is indicated. However, because the impact is availability loss at the kernel level, affected systems running critical workloads should still be patched through normal kernel maintenance cycles.
How an attack unfolds
An attacker first obtains local access to an affected Linux system and identifies that kernel tracing/osnoise functionality is available. The attacker then causes one task to interact with tracing interfaces that take the tracing interface lock, while concurrently initiating or racing CPU offline/hotplug activity that enters the osnoise CPU teardown path. During CPU shutdown, the kernel calls into osnoise cleanup and attempts to stop an osnoise kernel thread. That thread may enter osnoise sleep logic and attempt to acquire the same tracing interface lock while the CPU hotplug path is holding CPU hotplug synchronization. Because another task holds the tracing interface lock and then attempts to acquire CPU hotplug synchronization, the lock order reverses and the tasks can wait on each other indefinitely. The result is a kernel deadlock and denial of service rather than privilege escalation or data compromise.
How to fix it
Apply the Linux kernel update from the relevant distribution or kernel vendor that includes the upstream fix for the tracing osnoise CPU hotplug deadlock, specifically the change that reorders acquisition of cpus_read_lock() and interface_lock. No exact fixed package versions were provided, so track vendor advisories for the affected kernel stream and update to the first patched kernel or later. Reboot into the patched kernel after installation; merely installing the package is insufficient if the vulnerable kernel remains running. As interim mitigations, restrict local access to tracing/debug interfaces, limit membership and privileges that can write to tracefs/debugfs, avoid exposing CPU hotplug controls to untrusted users, disable or avoid use of the osnoise tracer where operationally feasible, and monitor systems that rely on dynamic CPU online/offline operations more closely until patched.
How to confirm the fix worked
Confirm remediation by verifying the running kernel version, not just the installed package version, and mapping it to the vendor advisory that contains the osnoise CPU hotplug deadlock fix. On source-based or custom kernels, confirm the patch that swaps the cpus_read_lock() and interface_lock acquisition order is present in the tracing/osnoise code. Check that the system has been rebooted into the patched kernel using uname and package-manager kernel inventory. To assess exposure, determine whether tracefs/debugfs tracing interfaces are mounted and whether osnoise tracer functionality is available under /sys/kernel/tracing or /sys/kernel/debug/tracing. Review whether non-administrative users can access tracing or CPU hotplug controls. Functional validation should be performed only in a controlled test environment by exercising osnoise tracing and CPU hotplug workflows and confirming they complete without hung tasks or deadlock symptoms.
Typical attack path
- Gain local access to an affected Linux host.
- Confirm tracing/osnoise interfaces are enabled or accessible, typically through tracefs/debugfs tracing paths.
- Start or manipulate osnoise tracing activity so kernel osnoise threads are active.
- Trigger CPU hotplug activity, such as taking a CPU offline, while tracing interface operations are in progress.
- Race the tracing interface lock against CPU hotplug locking so the vulnerable lock-order sequence is reached.
- Cause the kernel to deadlock, leading to hung tasks, stalled CPU offline operations, or host unresponsiveness.
- Force administrators to recover availability through reboot or out-of-band intervention.
How to detect it
Retrospective detection is difficult because exploitation looks like a kernel reliability failure rather than a distinctive intrusion event. Review kernel logs, persistent journal entries, console logs, crash dumps, and monitoring alerts for hung tasks, soft lockups, stalled CPU offline operations, or blocked kernel threads involving osnoise, tracing, kthread_stop, CPU hotplug, cpus_read_lock, cpus_write_lock, or interface_lock. Correlate those events with audit or shell history showing writes to tracefs/debugfs tracing files and CPU online/offline controls. Useful log sources include dmesg, /var/log/kern.log, /var/log/messages, journalctl -k, auditd logs, sudo logs, EDR process telemetry, command history where available, and kernel crash dump analysis from kdump/vmcore. Look for administrative or unexpected use of tools such as rtla osnoise, trace-cmd, perf, or direct writes to /sys/kernel/tracing and /sys/devices/system/cpu/cpu*/online shortly before a hang or reboot. Absence of these artifacts does not prove non-exploitation because a full deadlock may prevent logs from being flushed.
- /sys/kernel/tracing/osnoise
- /sys/kernel/debug/tracing/osnoise
- /sys/kernel/tracing/current_tracer
- /sys/kernel/debug/tracing/current_tracer
- /sys/devices/system/cpu/cpu*/online
- rtla osnoise
- trace-cmd
- perf trace
- osnoise_cpu_die
- osnoise_sleep
- interface_lock
- cpus_read_lock
- cpus_write_lock
- kthread_stop
- CPU going offline
- task blocked for more than
- INFO: task
- blocked for more than 120 seconds
- BUG: soft lockup
- watchdog: BUG: soft lockup
- NMI watchdog: Watchdog detected hard LOCKUP
- kernel: hung_task
- echo osnoise > /sys/kernel/tracing/current_tracer
- echo osnoise > /sys/kernel/debug/tracing/current_tracer
- echo 0 > /sys/devices/system/cpu/cpu
- echo 1 > /sys/devices/system/cpu/cpu
What your security team should do
- Prioritize patching Linux systems where local users, shared administrators, containers with elevated host access, performance-monitoring tools, or automation can interact with tracing or CPU hotplug controls.
- Include this issue in routine kernel update cycles; escalate faster for high-availability hosts because successful exploitation can require reboot-based recovery.
- Verify that production systems are actually running patched kernels after maintenance reboots.
- Restrict write access to /sys/kernel/tracing, /sys/kernel/debug/tracing, and /sys/devices/system/cpu/cpu*/online to trusted administrators only.
- Review use of osnoise, rtla osnoise, trace-cmd, perf, and related tracing tooling on multi-user systems.
- Add monitoring for CPU hotplug changes and tracing configuration changes, especially when followed by hung-task or soft-lockup messages.
- Because this is not in CISA KEV, has no known ransomware association, and has very low EPSS, treat it as a reliability-focused local DoS issue unless local attacker activity is suspected.
The record
In the Linux kernel, the following vulnerability has been resolved: tracing: Fix potential deadlock in cpu hotplug with osnoise The following sequence may leads deadlock in cpu hotplug: task1 task2 task3 ----- ----- ----- mutex_lock(&interface_lock) [CPU GOING OFFLINE] cpus_write_lock(); osnoise_cpu_die(); kthread_stop(task3); wait_for_completion(); osnoise_sleep(); mutex_lock(&interface_lock); cpus_read_lock(); [DEAD LOCK] Fix by swap the order of cpus_read_lock() and mutex_lock(&interface_lock).
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-61854 VoiceSentinel is a real-time voice moderation system for Minecraft servers. CWE-667
- CVE-2026-118593 A flaw was found in Red Hat Enterprise Linux 9 kernel builds. CWE-667
- CVE-2026-106174 A improper locking vulnerability in Fortinet FortiOS 8.0.0, FortiOS 7.6.4 through 7.6.6… CWE-667
- CVE-2026-110803 VaadinService.requestEnd() in Vaadin Framework 8 locks the session and then reads the… CWE-667
- CVE-2026-111879 DBI versions before 1.656 for Perl hang on a later open of a DBD::DBM table because a… CWE-667
- CVE-2026-107674 IBM i 7.3, 7.4, 7.5, and 7.6 is vulnerable to a denial of service to Digital Certificate… CWE-667
- CVE-2026-98123 In the Linux kernel, the following vulnerability has been resolved: sctp: fix soft lockup… CWE-667
- CVE-2026-98094 In the Linux kernel, the following vulnerability has been resolved: staging: fbtft: make… CWE-667