CVE-2026-23283Linux内核中的fp9931稳压器驱动程序存在一处资源管理漏洞。在`fp9931_hwmon_read`函数执行期间,如果`regmap_read`操作失败,代码路径会直接返回错误码,却遗漏了对`pm_runtime_put_autosuspend`的调用。这种处理逻辑导致电源管理(PM)运行时引用计数无法正确释放,形成引用泄漏。长期来看,这可能导致系统无法进入低功耗状态,造成资源耗尽或系统不稳定,影响系统可用性。
该漏洞位于Linux内核的`drivers/regulator/fp9931.c`驱动文件中,涉及电源管理(PM)运行时机制的不当处理。PM运行时使用引用计数来管理设备的唤醒状态,当引用计数大于零时,设备保持活跃状态。在`fp9931_hwmon_read`函数中,代码预期在读取硬件监控数据后调用`pm_runtime_put_autosuspend`来递减引用计数。然而,当`regmap_read`函数因硬件错误或通信问题返回失败时,该函数立即执行错误返回路径,跳过了清理操作。这意味着每一次失败的读取操作都会永久增加一个引用计数,且永远不会被释放。随着时间推移或被恶意脚本频繁触发,泄漏的引用计数将累积至高位,导致内核认为设备始终处于忙碌状态,从而阻止系统进入睡眠或休眠模式,最终造成系统挂起或拒绝服务。