CVE-2026-31723Linux内核中的USB gadget子系统存在安全漏洞。具体而言,f_subset组件在处理net_device生命周期时存在问题。在设备解绑阶段,父设备被销毁,但网络设备依然存在,导致sysfs中存在悬空符号链接。该漏洞可能被本地攻击者利用,通过触发特定的设备绑定/解绑操作,破坏系统文件系统结构或导致系统资源耗尽,从而引发拒绝服务。
该漏洞源于Linux内核USB gadget功能驱动f_subset中对于网络设备生命周期管理的逻辑缺陷。在正常流程中,net_device在实例创建时分配,并在绑定阶段注册,其sysfs父设备指向gadget设备。然而,当gadget设备执行解绑操作时,父设备被销毁,而net_device对象未被正确清理或转移父节点,导致/sys/class/net/usb0等符号链接指向不存在的路径,形成悬空指针。攻击者需要具备本地低权限,通过操纵USB gadget设备的绑定与解绑流程,反复触发该逻辑错误。虽然主要影响是可用性,但内核中的悬空指针和错误的sysfs拓扑结构可能导致内核崩溃或触发未定义行为,进而导致系统拒绝服务。修复方案引入了device_move()函数,在解绑前将网络设备重新挂载到/sys/devices/virtual下,确保设备树的完整性。