CVE-2025-12890CVE-2025-12890是Zephyr项目实时操作系统(RTOS)中蓝牙低功耗(BLE)协议栈的一个中等严重度拒绝服务漏洞。该漏洞存在于BLE连接管理模块,当设备接收到格式错误的连接请求时,如果连接间隔被设置为1(这是一个非法值),同时通道映射字(chM)被设置为0x7CFFFFFFFF,BLE栈将无法正确处理这种情况,导致系统崩溃。一旦漏洞被触发,受影响的BLE外设将无法再接受新的连接请求,从而造成拒绝服务攻击。该漏洞的CVSS评分为6.5,属于中危级别,攻击向量为相邻网络,攻击者需要处于目标设备的蓝牙信号范围内。无需认证或用户交互即可利用此漏洞,但仅影响可用性,对机密性和完整性无影响。Zephyr是一个广泛使用的开源实时操作系统,被应用于物联网设备、嵌入式系统、可穿戴设备等多种场景,因此该漏洞可能影响大量依赖Zephyr BLE功能的产品。
该漏洞的根本原因在于Zephyr BLE栈的连接请求验证机制不完善。在正常的BLE连接建立过程中,连接间隔(connInterval)必须满足一定的范围要求,通常最小值为6(对应7.5毫秒)。当连接间隔设置为1时,这违反了BLE规范,理论上应该被拒绝或安全处理。然而,Zephyr BLE栈在处理这种边界情况时存在缺陷。具体来说,当接收到chM字段为0x7CFFFFFFFF的畸形连接请求时,栈在解析和验证参数时未能正确处理非法间隔值,导致内存处理异常或断言失败,最终引发崩溃。攻击者可以通过发送特制的BLE连接请求包来触发此漏洞。攻击者需要首先进入目标设备的广播范围,然后发送包含上述畸形参数的连接请求。由于Zephyr的BLE实现未对连接间隔的合法性进行充分检查,系统会在处理连接响应时出现未定义行为,导致BLE子系统冻结或崩溃,从而阻断后续的所有连接请求。