CVE-2026-43227
Medium · 5.5CVSS
5.5
EPSS
0.1%
Published
May 6, 2026
CISA due date
—
Cloudanix analysis
Some affected Linux-based devices can become unstable or stop working because of a timing-driver bug, especially in real-time configurations.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Denial of service
- Remediation
- Patch
- Effort
- Low
- Patch risk
- Low
What it actually does
This is a Linux kernel availability flaw in the Renesas SH TMU clocksource/clockevent driver. The driver can call runtime power-management and clock-management routines while operating in clockevent paths that hold raw spinlocks. On PREEMPT_RT kernels, where regular spinlocks may sleep, this can create an invalid locking context and trigger lockdep warnings or unstable behavior in timer, idle, or clockevent handling. The practical impact is denial of service through kernel instability, hangs, or crashes on affected systems using the sh_tmu driver, especially real-time Linux builds on relevant Renesas platforms. Confidentiality and integrity are not directly affected.
Why it matters to the business
Affected real-time or embedded Linux systems may become unstable or unavailable, which can disrupt industrial, automotive, networking, appliance, or edge workloads that rely on predictable timing and uptime. The risk is most relevant to systems using Renesas SH TMU timer hardware with PREEMPT_RT or lock-debugging configurations. Public exploitation is not currently known, the EPSS score is very low and flat, and it is not in CISA KEV, so broad internet-scale exploitation is unlikely; however, downtime on embedded or real-time devices can still have significant operational impact.
How an attack unfolds
An attacker would first need local access to a vulnerable Linux system with the affected sh_tmu driver in use. Because the vulnerable behavior occurs in kernel timer and clockevent paths, exploitation would focus on repeatedly exercising CPU idle, timer, scheduling, or clockevent transitions until the driver attempts runtime power or clock operations from an invalid lock context. On susceptible PREEMPT_RT systems, this can cause kernel warnings, lock dependency failures, hangs, or crashes, resulting in denial of service. There is no indication from the provided data of remote exploitation, privilege escalation, ransomware use, or active exploitation by named threat actors.
How to fix it
Apply a Linux kernel update that includes the upstream fix for the sh_tmu driver behavior. The corrective change is to keep the TMU device powered and its clock running after probe instead of enabling/disabling power and clocks from clockevent paths. No exact fixed package versions were provided, so use the fixed kernel released by the Linux distribution, device vendor, board support package maintainer, or embedded Linux supplier for the affected platform. Where immediate patching is not possible, reduce exposure by limiting local shell access, restricting untrusted workloads, disabling unnecessary user access, and testing whether PREEMPT_RT builds using sh_tmu can be temporarily replaced with a non-RT or vendor-mitigated kernel if operationally acceptable. Kernel mitigations should be validated carefully on real-time systems because timer and clocksource changes can affect latency and scheduling behavior.
How to confirm the fix worked
Confirm whether the system uses the affected driver by checking kernel configuration, loaded drivers, device tree entries, and boot logs for sh_tmu or Renesas TMU timer initialization. Validate remediation by booting the updated kernel and confirming that the running kernel version or vendor build contains the sh_tmu fix. Review dmesg and persistent kernel logs under normal and stress conditions for absence of lockdep warnings involving sh_tmu_clock_event_set_oneshot, __pm_runtime_resume, tick_broadcast_lock, or Invalid wait context. On PREEMPT_RT systems, run representative real-time, idle-state, suspend/resume, and timer-stress workloads to confirm there are no kernel warnings, hangs, latency regressions, or clockevent failures.
Typical attack path
- Gain local access to a Linux system using the affected Renesas SH TMU timer driver.
- Confirm the system is running a vulnerable kernel build, especially a PREEMPT_RT or lock-debugging configuration.
- Trigger repeated timer, idle, scheduling, or clockevent state transitions that invoke the sh_tmu clockevent path.
- Cause the driver to call runtime power-management or clock-management routines while a raw spinlock context is active.
- Induce kernel instability, lockdep failures, hang, panic, or other denial-of-service condition.
How to detect it
To determine whether this issue was already triggered, collect kernel logs from dmesg, journalctl -k, /var/log/kern.log, /var/log/messages, serial console logs, crash dumps, pstore/ramoops, and any embedded device watchdog reset logs. Search for lockdep reports, invalid wait context warnings, kernel panics, hangs, watchdog resets, or call traces involving the sh_tmu timer driver, runtime power management, clockevents, or tick broadcast handling. Relevant artifacts include stack traces containing sh_tmu_clock_event_set_oneshot, __pm_runtime_resume, clockevents_switch_state, tick_broadcast_set_event, __tick_broadcast_oneshot_control, cpuidle_enter_state, or do_idle. Because this is a local denial-of-service condition with no known public exploit indicators, detection should focus on kernel instability evidence rather than network indicators. Correlate matching kernel messages with local login records, process execution telemetry, workload launches, or scheduled jobs to identify whether an untrusted local user or process may have intentionally triggered repeated timer or idle transitions.
- BUG: Invalid wait context
- lockdep warning
- __pm_runtime_resume
- sh_tmu_clock_event_set_oneshot
- clockevents_switch_state
- tick_broadcast_set_event
- __tick_broadcast_oneshot_control
- tick_broadcast_lock
- cpuidle_enter_state
- cpuidle_enter
- do_idle
- swapper/0 is trying to lock
- &dev->power.lock
- clocksource/drivers/sh_tmu
- sh_tmu
- TMU device
- PREEMPT_RT
- PROVE_LOCKING
What your security team should do
- Prioritize inventory of Linux systems using Renesas SH TMU timer hardware, especially embedded and real-time PREEMPT_RT deployments.
- Obtain and schedule deployment of a vendor or distribution kernel that includes the sh_tmu fix.
- Treat exposed local-user or multi-tenant embedded systems as higher priority because exploitation requires local code execution.
- Review kernel logs for historical lockdep, timer, idle, or clockevent warnings that match the vulnerable path.
- Restrict local interactive access and untrusted workload execution until patched.
- Test the patched kernel in a staging or hardware-in-the-loop environment before production rollout, with emphasis on real-time latency and timer behavior.
- If no vendor kernel is available, consult the platform maintainer about backporting the upstream driver change.
- Continue monitoring vendor advisories because no fixed versions were supplied in the input.
The record
In the Linux kernel, the following vulnerability has been resolved: clocksource/drivers/sh_tmu: Always leave device running after probe The TMU device can be used as both a clocksource and a clockevent provider. The driver tries to be smart and power itself on and off, as well as enabling and disabling its clock when it's not in operation. This behavior is slightly altered if the TMU is used as an early platform device in which case the device is left powered on after probe, but the clock is still enabled and disabled at runtime. This has worked for a long time, but recent improvements in PREEMPT_RT and PROVE_LOCKING have highlighted an issue. As the TMU registers itself as a clockevent provider, clockevents_register_device(), it needs to use raw spinlocks internally as this is the context of which the clockevent framework interacts with the TMU driver. However in the context of holding a raw spinlock the TMU driver can't really manage its power state or clock with calls to pm_runtime_*() and clk_*() as these calls end up in other platform drivers using regular spinlocks to control power and clocks. This mix of spinlock contexts trips a lockdep warning. ============================= [ BUG: Invalid wait context ] 6.18.0-arm64-renesas-09926-gee959e7c5e34 #1 Not tainted ----------------------------- swapper/0/0 is trying to lock: ffff000008c9e180 (&dev->power.lock){-...}-{3:3}, at: __pm_runtime_resume+0x38/0x88 other info that might help us debug this: context-{5:5} 1 lock held by swapper/0/0: ccree e6601000.crypto: ARM CryptoCell 630P Driver: HW version 0xAF400001/0xDCC63000, Driver version 5.0 #0: ffff8000817ec298 ccree e6601000.crypto: ARM ccree device initialized (tick_broadcast_lock){-...}-{2:2}, at: __tick_broadcast_oneshot_control+0xa4/0x3a8 stack backtrace: CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Not tainted 6.18.0-arm64-renesas-09926-gee959e7c5e34 #1 PREEMPT Hardware name: Renesas Salvator-X 2nd version board based on r8a77965 (DT) Call trace: show_stack+0x14/0x1c (C) dump_stack_lvl+0x6c/0x90 dump_stack+0x14/0x1c __lock_acquire+0x904/0x1584 lock_acquire+0x220/0x34c _raw_spin_lock_irqsave+0x58/0x80 __pm_runtime_resume+0x38/0x88 sh_tmu_clock_event_set_oneshot+0x84/0xd4 clockevents_switch_state+0xfc/0x13c tick_broadcast_set_event+0x30/0xa4 __tick_broadcast_oneshot_control+0x1e0/0x3a8 tick_broadcast_oneshot_control+0x30/0x40 cpuidle_enter_state+0x40c/0x680 cpuidle_enter+0x30/0x40 do_idle+0x1f4/0x280 cpu_startup_entry+0x34/0x40 kernel_init+0x0/0x130 do_one_initcall+0x0/0x230 __primary_switched+0x88/0x90 For non-PREEMPT_RT builds this is not really an issue, but for PREEMPT_RT builds where normal spinlocks can sleep this might be an issue. Be cautious and always leave the power and clock running after probe.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|