CVE-2026-23009CVE-2026-23009是Linux内核中与USB主机控制器接口(xHCI)sideband端点管理相关的安全漏洞。该漏洞位于drivers/usb/host/xhci-sideband.c文件中的xhci_sideband_remove_endpoint()函数。该函数在移除sideband端点时错误地假设端点处于运行状态且具有有效的传输环(transfer ring)。当系统经历挂起/唤醒压力测试,或在恢复过程中xHCI被重新初始化(电源丢失)、设备重新枚举、断开连接或端点已丢弃时,端点及其环可能处于未知状态。此时函数尝试访问已释放的ep->ring成员,会导致空指针解引用或释放后引用,触发内核崩溃。该漏洞可被本地低权限用户触发,造成系统拒绝服务(DoS)。CVSS评分为5.5,属于中等严重程度,主要影响系统的可用性。
漏洞根源在于xhci_sideband_remove_endpoint()函数在删除端点时未正确检查端点状态。函数直接访问ep->ring指针,但在以下场景中该指针可能已无效:(1)xHCI在resume过程中重新初始化导致端点环被释放;(2)设备断开连接时端点被清理;(3)端点已在之前被丢弃。当函数执行时,如果ep->ring已被释放或不存在,直接解引用将导致内核panic。此外,函数中错误地调用xhci_initialize_ring_info()来初始化环结构,该操作仅设置软件层面的队首、队尾和循环状态值,不影响实际硬件状态,反而可能造成软硬件状态不一致。修复方案包括:移除不必要的ring访问、添加ep->ring存在性检查、确保在停止端点前验证其运行状态、删除端点移除时的xhci_initialize_ring_info()调用。本地攻击者可通过触发特定设备连接/断开循环或挂起唤醒操作来利用此漏洞。