CVE-2026-31722Linux内核USB Gadget子系统的f_rndis驱动存在安全漏洞。该漏洞源于net_device生命周期管理不当,在设备解绑时,gadget父设备销毁导致net_device残留,产生悬空sysfs符号链接。本地低权限攻击者可利用此问题触发内核异常,导致系统崩溃或拒绝服务。
该漏洞源于Linux内核USB Gadget子系统中f_rndis驱动的net_device生命周期管理逻辑缺陷。在USB gadget设备的正常生命周期中,net_device在实例创建时分配,并在绑定时注册,其sysfs父节点指向gadget设备。当驱动执行unbind操作时,gadget父设备被先行销毁,但net_device对象并未被同步清理或迁移父节点。这导致/sys/class/net/路径下保留了指向已销毁设备的符号链接,形成悬空指针。攻击者仅需本地低权限即可通过配置和移除USB gadget来触发该流程。由于CVSS向量显示可用性影响为高(A:H),这种悬空引用会导致内核在后续操作中访问无效内存区域,进而引发系统崩溃或拒绝服务。修复方案通过引入device_move()函数,在unbind前将net_device重新挂载到virtual设备树,从而保证设备拓扑的正确性和电源管理的顺序。