CVE-2026-43375Linux内核中的MCTP(管理组件传输协议)驱动程序存在一个资源泄露漏洞。该漏洞发生在驱动程序探测USB设备的过程中。根据Linux驱动核心的机制,当接口绑定到驱动时,核心已持有相关引用,无需驱动额外获取。然而,该驱动在探测函数中错误地增加了对USB设备的引用计数,但在探测失败的处理路径中未进行相应的释放操作。这种错误导致USB设备结构体无法被正确回收,造成内存泄露。本地低权限攻击者可通过反复触发探测失败的设备操作,耗尽系统内存资源,从而引发拒绝服务。
该漏洞的根本原因在于Linux内核net/mctp驱动代码中对USB设备生命周期管理的逻辑错误。在USB子系统中,当驱动程序调用probe函数时,驱动核心已经确保了USB设备及接口的有效性,并持有其引用计数。问题代码在probe过程中调用了`usb_get_dev()`(或类似函数)来手动增加引用计数,意图是在后续使用中保持设备活跃。然而,代码逻辑未覆盖所有错误退出路径,导致在probe函数返回失败之前,没有调用对应的`usb_put_dev()`来释放引用。由于引用计数未归零,内核内存管理子系统无法回收该设备对象占用的内存(包括设备描述符及相关结构)。随着攻击者不断插拔模拟设备或通过软件手段反复触发bind/unbind操作并导致probe失败,内核内存将逐渐耗尽,最终导致系统OOM(内存溢出)或崩溃。