CVE-2026-90281: phy: qcom: snps-femto-v2: Fix possible NULL-deref on early runtime suspend
In the Linux kernel, the following vulnerability has been resolved:
phy: qcom: snps-femto-v2: Fix possible NULL-deref on early runtime suspend
Runtime PM must be enabled before creating the PHY, since phycreate() only enables runtime PM on the PHY device if it is already enabled on this parent device. However, the runtime PM callbacks dereference the hsphy instance, which is not yet ready, leaving a window where a suspend callback may trigger a NULL pointer dereference.
Take a runtime PM usage reference with pmruntimegetnoresume() before enabling runtime PM and release it once the PHY has been created, so that no runtime suspend can run before the PHY is ready. This also prevents a short window where an unnecessary runtime suspend can occur.
Use the devres-managed version to ensure PM runtime is symmetrically disabled during driver removal for proper cleanup.
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Configuration
Ensure runtime PM is enabled before creating the PHY by taking the runtime PM usage reference with pm_runtime_get_noresume() before calling phy_create(), then enable/hold it until the PHY has been created; release the reference once the PHY is created so no early runtime suspend can run while the hsphy instance is not yet ready.
Linux kernel (phy: qcom: snps-femto-v2 driver) Runtime PM enablement before PHY creation = enabled
Event History
Frequently Asked Questions
When can the NULL pointer dereference occur?
It can occur during driver initialization if runtime PM invokes a suspend callback after runtime PM is enabled but before the PHY and its hsphy instance are fully created and ready.
What condition is required to trigger the issue?
A runtime suspend callback must run in the early initialization window. The affected callbacks dereference the hsphy instance before it has been initialized.
What does the fix change?
The fix takes a runtime PM usage reference before enabling runtime PM, preventing runtime suspend until PHY creation completes. It also uses devres-managed runtime PM cleanup during driver removal.