CVE-2025-55100CVE-2025-55100是Eclipse基金会ThreadX操作系统USB支持模块USBX中的一个严重安全漏洞。该漏洞存在于USBX 6.4.3之前的版本中,具体位于音频类驱动程序的采样频率解析函数_ux_host_class_audio10_sam_parse_func()中。当USB主机栈解析USB音频设备描述符中的采样频率列表(采样频率列表是音频类接口描述符的一部分)时,由于缺乏对输入数据的有效边界检查,可能导致越界读取操作的发生。
该漏洞由安全研究员[email protected]发现并报告,于2025年10月17日正式公开披露。CVSS 3.1基础评分高达9.1分,属于严重级别。攻击向量为网络(AV:N),攻击复杂度低(AC:L),无需任何权限(PR:N)和用户交互(UI:N)。从CVSS向量可以看出,该漏洞对机密性产生高影响(C:H),对完整性无影响(I:N),对可用性产生高影响(A:H)。这意味着攻击者可以利用此漏洞读取未授权的内存内容,并可能导致系统崩溃或拒绝服务。
由于USBX广泛应用于嵌入式系统和物联网设备中,该漏洞可能影响大量使用ThreadX实时操作系统的工业控制设备、医疗设备、消费电子等产品。攻击者可以通过物理接入或恶意USB设备触发该漏洞,对设备安全构成严重威胁。
USBX是Eclipse ThreadX实时操作系统的USB主机和设备栈实现,支持USB音频类(Audio Class 1.0)设备。USB音频类设备通过接口描述符中的Type I格式描述符来声明其支持的采样频率范围,采样频率列表以三字节三元组(最低采样频率、最高采样频率、采样频率分辨率)的形式存储在描述符中。
漏洞存在于函数_ux_host_class_audio10_sam_parse_func()中,该函数负责解析音频类设备的采样频率信息。在解析过程中,函数需要遍历描述符中的采样频率三元组列表。然而,由于USB描述符中的字段(如bLength、bSamFreqType等)来自外部设备,攻击者可以构造恶意的USB音频设备描述符,使bSamFreqType字段的值超出实际可用的三元组数量。当函数按照bSamFreqType指定的数量遍历三元组时,会越过分配的缓冲区边界读取相邻内存中的数据。
具体利用方式如下:
1. 攻击者构造一个恶意的USB音频设备,其描述符中bSamFreqType字段被设置为大于实际三元组数量的值;
2. 当受影响的USBX主机栈枚举该设备并调用_ux_host_class_audio10_sam_parse_func()解析采样频率时;
3. 函数按照bSamFreqType的值进行循环读取,导致越界访问堆或栈内存;
4. 越界读取的数据可能包含敏感信息(如内存中的密钥、指针等),同时也可能触发内存访问异常导致系统崩溃。
该漏洞的根本原因是输入验证不足,函数未对bSamFreqType与描述符实际长度之间的关系进行校验,未确保三元组数量与描述符大小匹配。