CVE-2025-38631
NoneCVSS
—
EPSS
0.2%
Published
Aug 22, 2025
CISA due date
—
Cloudanix analysis
A bug in certain Linux systems can cause the computer to crash during startup when clock hardware is initialized, leading to unexpected restarts until the software is updated.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Other
- Remediation
- Patch
- Effort
- Medium
- Patch risk
- Low
What it actually does
Enabling runtime PM for clock suppliers in a power domain without an explicit resume allows the power domain to be cut off after clk_register(), leading to a synchronous external abort when clk_mux_get_parent attempts to access BLK_CTL registers during of_clk_add_hw_provider.
Why it matters to the business
Kernel crashes during device probing or boot on affected systems can cause unplanned downtime and require manual intervention to restore service; the issue affects Linux kernel-based deployments including certain container images.
How an attack unfolds
An attacker with the ability to trigger deferred_probe_work_func on an imx95 platform (for example via crafted device tree or module load) can induce the crash path, though the flaw is a stability bug rather than a code-execution vector and no named threat actors have been observed exploiting it.
How to fix it
Update to Linux kernel commit c1dead8bb303f86905ea6a09e5acda931165453b or later; for Chainguard images upgrade the listed openjdk-21-openj9 packages to version 0.53.0-r0 or newer; replace pm_runtime_enable/pm_runtime_disable pairs with devm_pm_runtime_enable and remove manual disable calls in cleanup paths.
How to confirm the fix worked
Confirm the presence of devm_pm_runtime_enable in imx95_bc_probe and absence of the original pm_runtime_disable in the error path; boot an imx95 system and verify that deferred_probe_work_func no longer triggers the synchronous abort.
Typical attack path
- Trigger platform device probe for imx95-blk-ctl
- Call pm_runtime_enable without a preceding resume
- clk_register completes and power domain is cut off
- of_clk_add_hw_provider invokes clk_core_reparent_orphans_nolock
- clk_mux_get_parent dereferences hardware registers that are now inaccessible
- Synchronous external abort terminates the workqueue
How to detect it
Search kernel logs for the exact call trace containing clk_mux_get_parent, clk_core_reparent_orphans_nolock, and imx95_bc_probe; correlate with workqueue events_unbound and deferred_probe_work_func entries around the time of the abort.
What your security team should do
- Prioritize kernel updates on all imx95-based systems within normal maintenance windows
- Scan Chainguard container images for the affected openjdk-21-openj9 packages and rebuild with 0.53.0-r0
- Monitor boot logs for 'synchronous external abort' and 'clk_mux_get_parent' entries
- Test runtime PM changes in staging environments before production rollout
The record
In the Linux kernel, the following vulnerability has been resolved: clk: imx95-blk-ctl: Fix synchronous abort When enabling runtime PM for clock suppliers that also belong to a power domain, the following crash is thrown: error: synchronous external abort: 0000000096000010 [#1] PREEMPT SMP Workqueue: events_unbound deferred_probe_work_func pstate: 60400009 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : clk_mux_get_parent+0x60/0x90 lr : clk_core_reparent_orphans_nolock+0x58/0xd8 Call trace: clk_mux_get_parent+0x60/0x90 clk_core_reparent_orphans_nolock+0x58/0xd8 of_clk_add_hw_provider.part.0+0x90/0x100 of_clk_add_hw_provider+0x1c/0x38 imx95_bc_probe+0x2e0/0x3f0 platform_probe+0x70/0xd8 Enabling runtime PM without explicitly resuming the device caused the power domain cut off after clk_register() is called. As a result, a crash happens when the clock hardware provider is added and attempts to access the BLK_CTL register. Fix this by using devm_pm_runtime_enable() instead of pm_runtime_enable() and getting rid of the pm_runtime_disable() in the cleanup path.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:13 | linux | 0 | No fix |
| Debian:14 | linux | 0 | No fix |
| Debian:14 | linux | 0 | 6.16.3-1 |
| Linux | Kernel | 6.10.0 | 6.12.42 |
| openSUSE:Leap 16.0 | dtb-aarch64 | 0 | 6.12.0-160000.6.1 |
| openSUSE:Leap 16.0 | kernel-64kb | 0 | 6.12.0-160000.6.1 |
| openSUSE:Leap 16.0 | kernel-default | 0 | 6.12.0-160000.6.1 |
| openSUSE:Leap 16.0 | kernel-default-base | 0 | 6.12.0-160000.6.1.160000.2.4 |
| openSUSE:Leap 16.0 | kernel-docs | 0 | 6.12.0-160000.6.1 |
| openSUSE:Leap 16.0 | kernel-kvmsmall | 0 | 6.12.0-160000.6.1 |
| openSUSE:Leap 16.0 | kernel-obs-build | 0 | 6.12.0-160000.6.1 |
| openSUSE:Leap 16.0 | kernel-obs-qa | 0 | 6.12.0-160000.6.1 |
| openSUSE:Leap 16.0 | kernel-rt | 0 | 6.12.0-160000.6.1 |
| openSUSE:Leap 16.0 | kernel-source | 0 | 6.12.0-160000.6.1 |
| openSUSE:Leap 16.0 | kernel-syms | 0 | 6.12.0-160000.6.1 |
| openSUSE:Leap 16.0 | kernel-zfcpdump | 0 | 6.12.0-160000.6.1 |
Related vulnerabilities
- CVE-2025-39885 In the Linux kernel, the following vulnerability has been resolved: ocfs2: fix recursive… Also affects linux
- CVE-2025-39883 In the Linux kernel, the following vulnerability has been resolved: mm/memory-failure… Also affects linux
- CVE-2025-39884 In the Linux kernel, the following vulnerability has been resolved: btrfs: fix subvolume… Also affects linux
- CVE-2025-39886 In the Linux kernel, the following vulnerability has been resolved: bpf: Tell memcg to… Also affects linux
- CVE-2025-39876 In the Linux kernel, the following vulnerability has been resolved: net: fec: Fix… Also affects linux
- CVE-2025-39880 In the Linux kernel, the following vulnerability has been resolved: libceph: fix invalid… Also affects linux
- CVE-2025-39881 In the Linux kernel, the following vulnerability has been resolved: kernfs: Fix UAF in… Also affects linux
- CVE-2025-39882 In the Linux kernel, the following vulnerability has been resolved: drm/mediatek: fix… Also affects linux