CVE-2025-55098CVE-2025-55098是Eclipse Foundation ThreadX USBX USB支持模块中存在的一个安全漏洞,影响6.4.3之前的所有版本。该漏洞存在于_ux_host_class_audio_device_type_get()函数中,当解析USB音频设备的描述符(descriptor)时,可能发生越界读取(Out-of-Bounds Read)操作。USBX是Eclipse ThreadX实时操作系统(RTOS)的USB主机、设备和OTG支持组件,广泛应用于嵌入式系统和IoT设备中。该漏洞由[email protected]发现并报告,其CVSS 3.1评分为6.1分,属于中危级别。漏洞的攻击向量为物理访问(AV:P),无需认证(PR:N)和用户交互(UI:N),机密性影响为高(C:H),可用性影响为高(A:H),但完整性不受影响(I:N)。这意味着攻击者需要物理接触目标设备才能利用此漏洞,但一旦成功利用,可能导致敏感信息泄露和系统可用性受损。由于USBX广泛应用于各类嵌入式USB设备中,包括音频设备、存储设备和通信设备等,该漏洞的影响范围较为广泛。Eclipse基金会已发布安全公告GHSA-4jc2-x5hv-46fq,并发布了修复版本6.4.3。建议所有使用受影响版本USBX的开发者尽快升级到最新版本以修复此漏洞。
该漏洞的根源在于_ux_host_class_audio_device_type_get()函数在解析USB音频设备描述符时缺乏充分的边界检查。USB音频设备使用特定的描述符结构来标识其功能和属性,当USBX主机栈枚举USB音频设备时,会调用_ux_host_class_audio_device_type_get()函数来读取和解析这些描述符。在解析过程中,如果恶意构造的USB音频设备发送了畸形或超出预期长度的描述符数据,函数在访问描述符字段时可能读取超出分配缓冲区边界的数据,从而触发越界读取漏洞。这种越界读取可能导致以下后果:1)敏感信息泄露——攻击者可能通过精心构造的描述符数据读取相邻内存区域的内容,获取系统中的敏感信息(如加密密钥、内存布局等);2)系统崩溃或拒绝服务——越界读取可能导致系统进入异常状态,触发硬件异常或软件断言失败,从而使设备不可用。由于该漏洞需要物理访问(AV:P),攻击者需要将恶意的USB音频设备直接连接到目标系统才能触发漏洞利用。这在某些场景下是可行的,例如在公共充电站、不受控的物理环境中,或者通过社会工程学手段让用户插入恶意设备。该漏洞的利用复杂度较低(AC:L),因为只需简单的描述符构造即可触发,不需要复杂的绕过技术。