CVE-2026-31760Linux内核中的gpib: lpvo_usb驱动程序存在一个内存泄漏漏洞。该漏洞发生在驱动程序处理GPIB设备附加(attach)操作期间。驱动程序会遍历已注册的USB接口以寻找匹配的设备,并在过程中对这些USB设备进行引用计数(增加引用)。然而,在完成匹配或断开连接后,代码未能正确释放这些获取的引用。这导致每次设备断开或操作触发时,内核内存资源都会发生泄漏,长期运行可能耗尽系统内存,进而影响系统稳定性。
该漏洞的根源在于Linux内核gpib子系统中的lpvo_usb驱动对USB设备引用计数的生命周期管理不当。在GPIB设备挂载过程中,驱动代码通过迭代查找目标接口,并对每个检查过的接口调用了`usb_get_dev`(或类似函数)以获取指针引用并防止设备被卸载。根据内核引用计数规则,每次获取引用后必须配对调用`usb_put_dev`进行释放。但在该驱动的逻辑中,无论是找到匹配设备还是中途退出,都遗漏了释放非目标或已处理设备引用的操作。由于这是一个本地漏洞(AV:L),攻击者需要具备低权限(PR:L)访问权限。攻击者可以通过编写用户空间程序,利用特定系统调用或模拟设备热插拔行为,反复触发驱动的attach和disconnect路径。随着触发次数增加,内核中未释放的`struct usb_device`对象不断累积,最终导致内核内存耗尽(OOM),引发系统崩溃或拒绝服务(Availability Impact: High)。