CVE-2026-90281 in Linuxinfo

Summary

by MITRE • 09/17/2026

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 phy_create() 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 pm_runtime_get_noresume() 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.

Be aware that VulDB is the high quality source for vulnerability data.

Analysis

by VulDB Data Team • 09/17/2026

The vulnerability identified in the Linux kernel involves a race condition within the Qualcomm Snps-Femto-V2 PHY driver, specifically concerning the initialization sequence of power management subsystems and hardware resources. The core issue stems from an incorrect ordering of operations where runtime power management is enabled on the parent device before the physical layer (PHY) instance has been fully constructed. In Linux kernel architecture, the phy_create function relies on the state of its parent device to determine whether to enable runtime PM for the newly created PHY device. If runtime PM is already active on the parent at the moment of creation, it becomes active on the child as well. However, because the hsphy structure pointer has not yet been assigned or initialized during this early phase, any subsequent invocation of a runtime suspend callback will attempt to access members of an uninitialized or null object. This creates a critical window where the system may trigger a power state transition before the driver is ready to handle it, leading directly to a NULL pointer dereference that can cause kernel panics and system instability.

From a technical perspective, this flaw represents a classic initialization race condition often categorized under CWE-362, which describes concurrent execution of related processes without proper synchronization. The vulnerability arises because the driver does not adequately serialize the enablement of power management features with the completion of hardware resource allocation. When runtime PM is enabled prematurely, the kernel's power management core may invoke suspend callbacks in response to idle conditions or explicit system requests. Since these callbacks expect a valid pointer to the hsphy structure to perform their duties, such as clock gating or voltage scaling, they fail catastrophically when that pointer remains NULL. This scenario highlights the importance of strict ordering constraints in driver development, particularly where hardware state and software management structures must be synchronized before external subsystems are allowed to interact with them.

The operational impact of this vulnerability is significant for system reliability, especially on embedded platforms or mobile devices where power efficiency is paramount and runtime PM events occur frequently. A NULL pointer dereference in kernel space typically results in an immediate crash, requiring a reboot to restore service. In environments where high availability is critical, such as telecommunications infrastructure or automotive systems utilizing Qualcomm PHYs, this could lead to unplanned downtime or safety-critical failures if the system enters a low-power state unexpectedly during boot or initialization sequences. Furthermore, even if the race condition does not immediately trigger a crash due to timing variations, it leaves the driver in an inconsistent state where power management is active but unmanaged by valid hardware context, potentially leading to resource leaks or undefined behavior over time as the device cycles through power states.

To mitigate this vulnerability and prevent similar issues in future development, the recommended approach involves restructuring the initialization sequence to ensure that no runtime suspend callbacks can execute before the PHY instance is fully ready. This is achieved by taking a runtime PM usage reference using pm_runtime_get_noresume() prior to enabling runtime PM on the parent device. This function increments the usage counter without triggering any actual power state changes, effectively blocking entry into suspended states until the driver explicitly releases this reference after phy_create has successfully returned and initialized the hsphy structure. By holding this reference during the critical initialization window, the kernel is prevented from invoking suspend callbacks prematurely. Additionally, utilizing devres-managed functions for runtime PM operations ensures that these references are symmetrically released during driver removal or error paths, preventing resource leaks and ensuring clean teardown of power management states. This pattern aligns with best practices outlined in ATT&CK technique T1496 regarding environmental hijacking, as it secures the system environment against premature state transitions that could be exploited to cause denial of service through instability.

Responsible

Linux

Reservation

09/11/2026

Disclosure

09/17/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

very low

Sources

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!