CVE-2026-31729Linux内核中的USB Type-C UCSI驱动程序存在一个越界读取漏洞。该漏洞源于`ucsi_notify_common`函数在处理连接器改变指示(CCI)时,未对连接器编号进行有效的边界检查。攻击者可通过特制的恶意设备发送超出数组范围的连接器编号,导致内核访问非法内存地址,进而引发系统崩溃或潜在的权限提升。
该漏洞位于Linux内核`drivers/usb/typec/ucsi/ucsi.c`路径下的驱动代码中。UCSI(USB Type-C Connector System Software Interface)通过CCI寄存器通知内核连接器状态变化,其中包含一个7位宽的连接器编号字段(理论范围0-127)。然而,内核在初始化时仅根据硬件实际支持的连接器数量(通常为2-4个)分配`connector`数组大小。当`ucsi_notify_common`解析CCI并调用`ucsi_connector_change`时,直接使用恶意提供的编号作为数组索引,未验证其是否小于数组长度。这种越界访问(OOB)可能读取敏感内存信息或破坏内核内存结构,导致拒绝服务(DoS)或在特定条件下实现本地代码执行。