CVE-2025-38521
Analyzed Analyzed - Analysis Complete
BaseFortify

Publication date: 2025-08-16

Last updated on: 2026-01-22

Assigner: kernel.org

Description
In the Linux kernel, the following vulnerability has been resolved: drm/imagination: Fix kernel crash when hard resetting the GPU The GPU hard reset sequence calls pm_runtime_force_suspend() and pm_runtime_force_resume(), which according to their documentation should only be used during system-wide PM transitions to sleep states. The main issue though is that depending on some internal runtime PM state as seen by pm_runtime_force_suspend() (whether the usage count is <= 1), pm_runtime_force_resume() might not resume the device unless needed. If that happens, the runtime PM resume callback pvr_power_device_resume() is not called, the GPU clocks are not re-enabled, and the kernel crashes on the next attempt to access GPU registers as part of the power-on sequence. Replace calls to pm_runtime_force_suspend() and pm_runtime_force_resume() with direct calls to the driver's runtime PM callbacks, pvr_power_device_suspend() and pvr_power_device_resume(), to ensure clocks are re-enabled and avoid the kernel crash.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2025-08-16
Last Modified
2026-01-22
Generated
2026-05-07
AI Q&A
2025-08-16
EPSS Evaluated
2026-05-05
NVD
Affected Vendors & Products
Showing 7 associated CPEs
Vendor Product Version / Range
linux linux_kernel From 6.8 (inc) to 6.12.39 (exc)
linux linux_kernel From 6.13 (inc) to 6.15.7 (exc)
linux linux_kernel 6.16
linux linux_kernel 6.16
linux linux_kernel 6.16
linux linux_kernel 6.16
linux linux_kernel 6.16
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-668 The product exposes a resource to the wrong control sphere, providing unintended actors with inappropriate access to the resource.
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?

This vulnerability is a kernel crash issue in the Linux kernel related to the GPU hard reset sequence in the drm/imagination driver. The problem arises because the GPU hard reset calls pm_runtime_force_suspend() and pm_runtime_force_resume(), which are intended only for system-wide power management transitions. Depending on the internal runtime PM state, pm_runtime_force_resume() might not resume the device, causing the GPU clocks not to be re-enabled. As a result, when the kernel next tries to access GPU registers during power-on, it crashes. The fix replaces these calls with direct calls to the driver's runtime PM callbacks to ensure the GPU clocks are properly re-enabled and prevent the crash.


How can this vulnerability impact me? :

This vulnerability can cause the Linux kernel to crash when the GPU is hard reset, leading to system instability or downtime. This could interrupt normal operations, cause data loss, or require system reboots, impacting system reliability and availability.


What immediate steps should I take to mitigate this vulnerability?

To mitigate this vulnerability, update the Linux kernel to a version where the drm/imagination driver replaces calls to pm_runtime_force_suspend() and pm_runtime_force_resume() with direct calls to the driver's runtime PM callbacks pvr_power_device_suspend() and pvr_power_device_resume(). This ensures the GPU clocks are properly re-enabled and prevents kernel crashes during GPU hard reset sequences.


Ask Our AI Assistant
Need more information? Ask your question to get an AI reply (Powered by our expertise)
0/70
EPSS Chart