CVE-2026-90287: phy: sunplus: fix error handling in sp_uphy_init()
In the Linux kernel, the following vulnerability has been resolved:
phy: sunplus: fix error handling in spuphyinit()
Fix the error paths of spuphyinit() to undo exactly what each stage did: return directly if clkprepareenable() fails, release only the clock if resetcontroldeassert() fails, and jump to errreset if updatediscvol() fails so the clock and reset are not leaked.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Compensating control
In sp_uphy_init(), fix error paths to undo exactly what each stage allocated: (1) return immediately if clk_prepare_enable() fails and release only the clock; (2) if reset_control_deassert() fails, jump to err_reset; (3) if update_disc_vol() fails, ensure the clock and reset are not leaked.
Event History
Frequently Asked Questions
What conditions are required for this issue to occur?
The issue occurs when sp_uphy_init() encounters failures in clk_prepare_enable(), reset_control_deassert(), or update_disc_vol(). The vulnerable error paths can leave clock and reset resources in an incorrect state.
Which systems are potentially affected?
Systems running a Linux kernel that uses the Sunplus PHY driver and reaches the affected sp_uphy_init() error paths may be affected. The provided information does not identify specific kernel versions or Sunplus hardware models.
What is the practical impact of the flawed error handling?
Failed initialization may leak enabled clock and reset state because cleanup does not match the initialization stage that failed. This can leave hardware resources improperly configured after an initialization error.