CVE-2026-31725Linux内核USB Gadget子系统的f_ecm驱动存在网络设备生命周期管理漏洞。在设备解绑过程中,gadget父设备被销毁,但net_device结构体未正确处理,导致sysfs中出现悬空符号链接。该漏洞破坏了设备树完整性,可能导致内核访问无效内存,引发系统崩溃或拒绝服务,影响本地系统稳定性。
该漏洞具体位于Linux内核的USB Gadget子系统中,影响f_ecm(以太网控制模型)功能驱动程序。其根本原因是net_device结构体的生命周期与其父设备(即gadget设备)的生命周期管理不当。在功能实例创建时,net_device被分配,并在bind阶段注册,此时其sysfs父节点被设置为gadget设备。然而,当unbind操作发生时,gadget设备被销毁,但net_device并未被同步释放或迁移,导致其sysfs链接指向已不存在的目录,形成悬空符号链接。这种不一致不仅破坏了sysfs拓扑结构,还可能导致电源管理顺序错误,进而触发内核空指针引用或崩溃,造成拒绝服务。修复方案通过引入device_move()函数,在unbind阶段将net_device重新挂载到/sys/devices/virtual下,在bind阶段再挂载回新的gadget设备,从而确保设备树的完整性和系统稳定性。