CVE-2026-31728Linux内核USB小工具驱动中存在竞态条件漏洞。当`gether_disconnect`与`eth_stop`并发执行时,可导致空指针解引用,引发内核死锁和系统崩溃,造成拒绝服务。
该漏洞源于Linux内核USB gadget子系统中`gether_disconnect`与`eth_stop`函数之间的竞态条件。具体场景下,当`gether_disconnect`正在执行端点拆除操作时,若`eth_stop`被并发触发,它会尝试访问已被清除的端点描述符,从而触发内核空指针解引用异常。由于`eth_stop`在崩溃过程中持有`dev->lock`自旋锁,导致执行`gether_disconnect`的线程无法获取该锁,CPU陷入无限自旋状态,最终引发系统硬锁定。根本原因在于`dev->port_usb`指针的清理操作被延迟到了函数末尾,未能在断开连接发生的第一时间切断关联。