CVE-2025-38041
Medium · 5.5CVSS
5.5
EPSS
0.2%
Published
Jun 18, 2025
CISA due date
—
Cloudanix analysis
A bug in the Linux kernel for certain graphics chips can cause the graphics processor to crash or freeze when adjusting its speed.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Race Condition
- Remediation
- Patch
- Effort
- Medium
- Patch risk
- Low
What it actually does
Race condition in sunxi-ng h616 GPU clock handling prevents safe reparenting during PLL frequency changes, allowing concurrent DVFS operations to trigger panfrost driver oops and GPU hangs.
Why it matters to the business
Systems using Allwinner H616 SoCs experience GPU instability and crashes during graphics workloads or power management transitions, reducing reliability for multimedia, compute, and embedded applications until patched kernels are deployed.
How an attack unfolds
An attacker with local access triggers GPU dynamic voltage and frequency scaling through graphics or compute workloads; the missing clock reparenting logic allows the PLL change to race with active GPU operations, resulting in driver faults and device hangs.
How to fix it
Update to a kernel containing commit 1439673b78185eaaa5fae444b3a9d58c434ee78e or later; rebuild and deploy the fixed kernel image on all H616-based devices.
How to confirm the fix worked
Confirm the presence of commit 1439673b78185eaaa5fae444b3a9d58c434ee78e in the running kernel source or binary; exercise GPU DVFS workloads and verify absence of panfrost oops or GPU hangs.
Typical attack path
- Obtain local execution on an affected H616-based Linux system
- Initiate GPU-accelerated workloads that invoke DVFS
- Trigger PLL frequency change without proper reparenting to GPU1 clock
- Cause race leading to panfrost oops and GPU hang
How to detect it
Review kernel logs for panfrost oops messages and GPU hang indicators on systems running affected sunxi-ng clock code prior to the fix commit.
What your security team should do
- Prioritize kernel upgrade on all H616 hardware within maintenance windows
- Test GPU workloads under DVFS after patching to validate stability
- Monitor kernel logs for panfrost errors on unpatched systems
The record
In the Linux kernel, the following vulnerability has been resolved: clk: sunxi-ng: h616: Reparent GPU clock during frequency changes The H616 manual does not state that the GPU PLL supports dynamic frequency configuration, so we must take extra care when changing the frequency. Currently any attempt to do device DVFS on the GPU lead to panfrost various ooops, and GPU hangs. The manual describes the algorithm for changing the PLL frequency, which the CPU PLL notifier code already support, so we reuse that to reparent the GPU clock to GPU1 clock during frequency changes.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Chainguard | hyperv-daemons-6.12 | 0 | 6.12.57-r2 |
| Chainguard | linux-aws-6.12-boot-installed | 0 | 6.12.57-r2 |
| Chainguard | linux-aws-6.12-fips-boot-installed | 0 | 6.12.57-r2 |
| Chainguard | linux-aws-6.12-headers | 0 | 6.12.57-r2 |
| Chainguard | linux-aws-6.12-modules | 0 | 6.12.57-r2 |
| Chainguard | linux-azure-6.12-boot-installed | 0 | 6.12.57-r2 |
| Chainguard | linux-azure-6.12-fips-boot-installed | 0 | 6.12.57-r2 |
| Chainguard | linux-azure-6.12-headers | 0 | 6.12.57-r2 |
| Chainguard | linux-azure-6.12-modules | 0 | 6.12.57-r2 |
| Chainguard | linux-gcp-6.12-boot-installed | 0 | 6.12.58-r0 |
| Chainguard | linux-gcp-6.12-fips-boot-installed | 0 | 6.12.57-r2 |
| Chainguard | linux-gcp-6.12-headers | 0 | 6.12.57-r2 |
| Chainguard | linux-gcp-6.12-modules | 0 | 6.12.57-r2 |
| Chainguard | linux-qemu-6.12-boot-installed | 0 | 6.12.63-r0 |
| Chainguard | linux-qemu-6.12-fips-boot-installed | 0 | 6.12.63-r0 |
| Chainguard | linux-qemu-6.12-headers | 0 | 6.12.63-r0 |
| Chainguard | linux-qemu-6.12-modules | 0 | 6.12.63-r0 |
| Chainguard | linux-vmware-6.12 | 0 | 6.12.67-r0 |
| Chainguard | linux-vmware-6.12-boot-installed | 0 | 6.12.63-r0 |
| Chainguard | linux-vmware-6.12-fips-boot-installed | 0 | 6.12.63-r0 |
| Chainguard | linux-vmware-6.12-headers | 0 | 6.12.63-r0 |
| Chainguard | linux-vmware-6.12-modules | 0 | 6.12.63-r0 |
| Debian:11 | linux | 0 | No fix |
| Debian:12 | linux | 0 | No fix |
| Debian:13 | linux | 0 | No fix |
| Debian:14 | linux | 0 | 6.16.3-1 |
| Linux | Kernel | 0 | 6.14.9 |
| Linux | Kernel | 5.12.0 | 6.14.9 |
Related vulnerabilities
- CVE-2025-39910 In the Linux kernel, the following vulnerability has been resolved: mm/vmalloc, mm/kasan… Also affects hyperv-daemons-6.12
- CVE-2025-39925 can: j1939: implement NETDEV_UNREGISTER notification handler Also affects hyperv-daemons-6.12
- CVE-2025-39905 net: phylink: add lock for serializing concurrent pl->phydev writes with resolver Also affects hyperv-daemons-6.12
- CVE-2025-39862 In the Linux kernel, the following vulnerability has been resolved: wifi: mt76: mt7915… Also affects hyperv-daemons-6.12
- CVE-2025-39859 In the Linux kernel, the following vulnerability has been resolved: ptp: ocp: fix… Also affects hyperv-daemons-6.12
- CVE-2025-39834 In the Linux kernel, the following vulnerability has been resolved: net/mlx5: HWS, Fix… Also affects hyperv-daemons-6.12
- CVE-2025-39830 In the Linux kernel, the following vulnerability has been resolved: net/mlx5: HWS, Fix… Also affects hyperv-daemons-6.12
- CVE-2025-39833 In the Linux kernel, the following vulnerability has been resolved: mISDN: hfcpci: Fix… Also affects hyperv-daemons-6.12