CVE-2025-71145CVE-2025-71145是Linux内核中usb: phy: isp1301驱动的一个高危安全漏洞,CVSS评分7.8。该漏洞源于isp1301_get_client()辅助函数在处理非OF(Open Firmware)设备时的引用计数管理不平衡问题。具体而言,该函数在OF(设备树)情况下正确增加了返回I2C设备的引用计数,但在非OF情况下未增加引用计数,导致调用者可能在设备已被释放后仍尝试访问,形成use-after-free条件。攻击者可通过低权限本地用户身份触发此漏洞,在特定竞态条件下可能导致内核崩溃(拒绝服务)或潜在的特权提升。攻击复杂度低,无需用户交互即可实施,机密性、完整性和可用性均受严重影响。
漏洞根源在于drivers/usb/phy/phy-isp1301.c中的isp1301_get_client()函数。当代码使用设备树(OF)初始化ISP1301 PHY时,函数通过of_find_i2c_device_by_node()获取I2C设备,该函数返回的设备引用计数已被增加。然而,在非OF(传统平台代码)路径中,代码使用spi_get_device_data()或其他方式获取I2C设备,但未调用相应的get_device()或i2c_get_clientdata()来增加引用计数。这导致调用者(如isp1301_probe)在后续调用put_device()时可能错误地释放仍被使用的设备对象。竞态条件存在于PHY驱动卸载与设备访问之间,攻击者可通过反复触发驱动绑定/解绑操作来增加漏洞触发概率。成功利用可导致内核内存破坏,可能实现本地权限提升。