漏洞公告
近日,安恒信息应急响应中心监测到外部安全研究员披露了影响商业蓝牙经典 (Bluetooth Classic,BT) 协议栈的16个新漏洞家族。研究人员在评估了11家供应商的13款蓝牙设备后发现了这批安全漏洞,这些漏洞总共分配了20个CVE,还有4个漏洞暂未分配CVE编号。因该协议栈广泛应用于各种智能手机、笔记本电脑、车辆和其他物联网设备,因此数百万设备可能会受到这些漏洞的影响。
相关链接:
https://asset-group.github.io/disclosures/braktooth/
https://isc.sans.edu/diary/rss/27802
一
影响范围
研究人员表示,查看蓝牙列表后发现大约有 1400 种产品受到影响。但是,鉴于 BT 协议栈通常在多个产品之间共享,因此受影响产品的实际数量可能要高得多。
受影响的产品列表总数如下所示:
二
漏洞描述
BrakTooth漏洞列表如下:
Feature Pages Execution(CVE-2021-28139):Espressif ESP-IDF 4.4 及更早版本中经典蓝牙协议栈实现接收 LMP 功能响应扩展数据包时未正确限制功能页面,无线范围内的攻击者可通过精心设计的方式触发ESP32中的任意代码执行,攻击者能够执行目标 ESP32 固件中实现的任意功能。通过执行无效的函数地址,在重复攻击尝试期间也可能触发固件崩溃或 BT 死锁,造成设备拒绝服务。
Truncated SCO Link Request(CVE-2021-34144):珠海杰理AC6366C BT SDK 0.9.1 及更早版本的经典蓝牙协议栈实现中无法正确处理截断的 LMP_SCO_Link_Request 数据包的接收,而没有其他蓝牙连接处于活动状态。这允许无线范围内的攻击者通过精心制作的 LMP 数据包阻止新的蓝牙连接。成功利用该漏洞的攻击者可以阻止外部与该设备的连接。
Duplicated IOCAP(CVE-2021-28136):Espressif ESP-IDF 4.4 及更早版本的经典蓝牙协议栈实现中无法正确处理配对过程中多个LMP_IO_Capability_req数据包的接收,允许无线范围内的攻击者通过重放LMP 数据包在 ESP32 中触发内存破坏,从而导致固件崩溃。
Feature Response Flooding(CVE-2021-28135/28155/31717):Espressif ESP-IDF 4.4 及更早版本的经典蓝牙协议栈实现中无法正确处理连续主动提供的 LMP 响应的接收,允许无线范围内的攻击者通过使用 LMP 功能响应数据淹没目标设备来触发 ESP32 中的拒绝服务。攻击者需要知道目标的 BDAddress 才能发起攻击。
LMP Auto Rate Overflow(CVE-2021-31609/31612):Silicon Labs iWRAP 6.3.0及更早版本的经典蓝牙协议栈实现中无法正确处理大于 17 字节的超大 LMP 数据包的接收,从而允许无线范围内的攻击者通过精心制作的LMP包触发WT32i中的崩溃。
LMP 2-DH1 Overflow(CVE待定):Laird CSR8811 A08和 CSR8510 A10 SoC上的经典蓝牙协议栈实现中允许LMP长度溢出超过2-DH1,从而导致死锁。
LMP DM1 Overflow(CVE-2021-34150):Bluetrum AB5301A上使用 未指定固件版本的经典蓝牙协议栈实现,无法正确处理超大 DM1 LMP 数据包的接收,这允许无线范围的攻击者通过精心制作的 LMP 数据包阻止新的蓝牙连接。
Truncated LMP Accepted(CVE-2021-31613):珠海杰理AC690X 和 AC692X 设备上的经典蓝牙协议栈实现无法正确处理 LMP 自动速率过程中截断的 LMP 数据包的接收,允许无线范围内的攻击者通过精心制作的 LMP 数据包使设备崩溃并重启。
Invalid Setup Complete(CVE-2021-31611):珠海杰理AC690X 和 AC692X 设备上的经典蓝牙协议栈实现无法正确处理接收到无序LMP 设置程序和格式错误的 LMP 数据包,允许无线范围内的攻击者攻击者通过注入精心制作的 LMP 数据包来使设备死锁。
Host Connection Flooding(CVE-2021-31785):Actions ATS2815/ATS2819 芯片组上的的经典蓝牙协议栈实现无法正确处理多个LMP_host_connection_req的接收,这允许无线范围内的攻击者进行拒绝服务攻击,导致设备死锁。
Same Host Connection(CVE-2021-31786):Actions ATS2815/ATS2819 芯片组上的的经典蓝牙协议栈实现中可能无法正确处理来自与当前连接的 BT 主机具有相同 BDAddress 的主机的连接尝试,通过使用与最初连接的主机的BDAddress匹配的伪造 BDAddress 简单地连接到目标设备(BT Speaker),目标设备触发断开连接并最终导致死锁。
LMP AU Rand Flooding(CVE-2021-31610/34149/34146/34143):多个芯片组上的经典蓝牙协议栈实现中无法正确处理接收连续的主动提供的LMP响应,这些响应会触发蓝牙固件内的堆溢出。这允许无线范围内的攻击者通过使用LMP_AU_rand数据包泛洪来触发拒绝服务。
LMP Invalid Max Slot Type(CVE-2021-34145):Cypress WICED BT stack 2.9.0和针对CYW20735B1 的设备不能正确处理的接收LMP_max_slot 具有无效基带数据包类型和LT_ADDRESS。该漏洞在 LMP 设置程序完成后触发,允许无线范围内的攻击者通过精心制作的 LMP 数据包触发拒绝服务
Max Slot Length Overflow(CVE-2021-34148):Cypress WICED BT stack 2.9.0及更早版本中用于 CYW20735B1的器件的经典蓝牙协议栈实现中无法正确处理具有更高 ACL 长度的LMP_max_slot接收 LMP 设置程序。这允许无线范围内的攻击者通过精心制作的 LMP 数据包触发拒绝服务
Invalid Timing Accuracy(CVE-2021-34147/待定):Cypress WICED BT stack 2.9.0及更早版本中用于 CYW20735B1的设备、Intel AX200 、Qualcomm WCN3990芯片组的经典蓝牙协议栈实现中无法正确处理格式错误的LMP时序精度响应的接收随后多次重新连接到目标。这允许攻击者耗尽设备BT资源。攻击者可以通过多次尝试发送精心制作的LMP_timing_acc_response来触发崩溃或BT干扰,然后突然重新连接到具有随机 BDAddress 的目标,导致设备拒绝服务。
Paging Scan Disable(CVE待定):在 LMP 计时精度过程中发送无效数据包(即数据包LMP_timing_acc_request),然后强制重新连接具有相同 BDAddress(攻击者选择的任意 BDAdress),导致Intel AX200拒绝任何外部发起的 BT 连接的时间不确定。在攻击过程中,AX200 可能会偶尔触发固件崩溃。
三
缓解措施
高危:目前漏洞细节和利用代码已经小范围公开,建议使用相关设备的用户及时关注厂商安全公告并进行相关固件的升级加固。
固件补丁情况:
安恒应急响应中心
2021年09月
本文始发于微信公众号(安恒信息应急响应中心):BrakTooth蓝牙漏洞风险提示
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论