CVE-2026-31724CVE-2026-31724是Linux内核中USB Gadget子系统的一个安全漏洞。该漏洞源于`f_eem`驱动程序在处理网络设备生命周期时的逻辑缺陷。具体而言,net_device在函数实例创建时分配,在绑定时注册,其父设备为gadget设备。当函数解绑时,父设备被销毁,但net_device仍然存活,导致sysfs中出现悬空符号链接。这可能引发系统资源管理混乱或拒绝服务攻击。
该漏洞涉及Linux内核USB Gadget功能驱动中的设备生命周期管理。在正常的操作流程中,net_device结构体在函数实例创建时被分配,并在绑定阶段注册到内核,此时其sysfs父节点被设置为gadget设备。问题发生在解绑阶段:当函数解绑时,gadget设备(父设备)被销毁,但net_device并未随之销毁。这导致net_device指向一个已不存在的父设备路径,在sysfs中产生“dangling symlinks”(悬空链接)。这不仅破坏了sysfs拓扑结构的一致性,还可能导致后续访问该设备路径时发生内核崩溃或其他不可预期的行为(如空指针解引用),从而影响系统可用性。修复方案采用了`device_move()`函数,在最终解绑时将net_device移动到`/sys/devices/virtual`设备树下,确保在gadget设备销毁前完成父节点变更。