外观
ESP32 蓝牙 HCI 争议
2025 年 3 月,西班牙安全公司 Tarlogic 披露:原始 ESP32 的蓝牙固件里有 29 条未公开的厂商自定义 HCI 命令,最初的新闻稿称之为「后门」。乐鑫随后回应,称这些是调试命令,无法远程触发。本文只描述公开资料中的事实,对风险给出中性的判断:没有证据显示这条路径能被远程利用,但「未公开的底层读写接口」本身确实值得关注。
概览
| 项目 | 内容 |
|---|---|
| 披露者 | Tarlogic Security,研究员 Miguel Tarascó Acuña 与 Antonio Vázquez Blanc |
| 披露场合 | 西班牙马德里的 RootedCON,2025 年 3 月 |
| 原始新闻稿 | 2025 年 3 月 6 日,标题含「backdoor」 |
| 内容 | 29 条未公开命令,可读写 RAM 与 Flash、伪造 MAC 地址、注入 LMP / LLCP 数据包 |
| 乐鑫回应 | 2025 年 3 月 10 日,称为调试命令,将提供补丁并公开文档 |
| CVE | CVE-2025-27840 |
| 受影响芯片 | 乐鑫称仅限原始 ESP32,ESP32-C、S、H 系列没有这些命令 |
HCI 是什么
主机控制器接口 (HCI, Host Controller Interface) 是蓝牙协议栈中「主机」和「控制器」之间的标准接口,见术语表。蓝牙标准允许芯片厂商添加自己的厂商自定义命令 (vendor-specific commands),TI 等厂商也有类似的读写内存命令,并不罕见。
ESP32 的特殊之处在于它可以有两种使用方式:
- 芯片自己运行应用,同时运行蓝牙主机和控制器,HCI 在芯片内部,外部访问不到。
- 把 ESP32 当作纯蓝牙控制器,由外部的主机芯片 (如 Linux 电脑) 通过串口或 USB 发 HCI 命令。这种模式下 HCI 会暴露给主机。
披露经过
Tarlogic 在研究蓝牙安全测试工具时,发现可以通过 HCI 对 ESP32 的控制器发出一批厂商命令,其中如 0xFC02 可写内存。他们列出了 29 条命令,并警告可能带来 OEM 层面的恶意实现与供应链攻击,当时的新闻稿把这个发现称为后门。
随后各方的反应不一:
- 媒体:一些报道用了「后门」「数十亿设备受影响」的措辞。BleepingComputer 后来把标题从「后门」改成了「未公开命令」。
- Tarlogic:后来表示称之为「隐藏功能」(hidden feature) 比「后门」更准确。
- 西班牙国家网络安全研究所 INCIBE:认为这些命令本身不构成安全风险,但属于厂商的不良实践,会让已被攻陷的设备更容易被进一步利用。
- 独立技术人士:多篇文章指出这是调试接口,并非远程后门,也有人拿 TI 的同类命令作对照。
乐鑫的回应
2025 年 3 月 10 日乐鑫发布声明,并在开发者门户发布技术博客,要点:
- 这些是为测试而内置的调试命令。
- 它们不能通过蓝牙、射频信号或互联网触发,因此不存在远程攻陷的风险。
- 若 ESP32 单独运行应用,未连接运行 BLE 主机的外部芯片,则这些 HCI 命令不暴露,没有安全威胁。
- 攻击者必须先攻陷主机设备,因此这是第二阶段的攻击手段而非独立漏洞。
- 命令只存在于原始 ESP32,不存在于 ESP32-C、ESP32-S、ESP32-H 系列。
- 乐鑫将通过软件补丁在受支持的 ESP-IDF 版本中移除对这些调试命令的访问,并公开记录所有厂商自定义 HCI 命令。
CVE-2025-27840
NVD 的描述为:「Espressif ESP32 chips allow 29 hidden HCI commands, such as 0xFC02 (Write memory)」,类型为 CWE-912 (隐藏功能)。据检索摘要,基础评分 6.8 (中危),向量为 AV:P/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:L,其中 AV:P 表示需要物理访问。本次没有逐字段核对 NVD 页面,评分请以 NVD 当前条目为准。NVD 条目的参考资料里也收录了反驳文章。
评分与媒体叙述的落差
CVSS 里的「物理访问」前提,与媒体「十亿设备」的叙述有明显落差。两者并不矛盾:数量说明范围,评分描述的是利用条件。
实际风险怎么看
结合上述资料,一个中性的判断:
- 在最常见的场景下 (ESP32 单独运行固件,应用自己调用蓝牙),没有已知的远程利用路径,不需要恐慌。
- 在把 ESP32 当作蓝牙控制器、并通过 USB 或串口连到一个可能被攻陷的主机的场景,这些命令会扩大「已攻陷主机」的影响,例如可持久化、绕过固件校验。
- 对供应链而言,这些命令说明乐鑫的固件里存在未公开的底层接口,设备制造商若需要强保证,应启用 Secure Boot 和 Flash 加密,并关注乐鑫发布的补丁,见术语表。
- 其他厂商的蓝牙芯片同样有厂商自定义命令,争议的重点其实是「未公开」,不是「存在」。
你可以做什么
- 使用 ESP-IDF 的受支持版本,并留意官方发布的补丁。补丁的具体版本本次未逐一核对,请在乐鑫的官方说明和 ESP-IDF 发布说明中确认。
- 若以 HCI 模式使用 ESP32,限制主机的暴露面,并保持主机更新。
- 安全测试工具 (如 Tarlogic 开发的相关工具) 只能用于自己拥有或获得书面授权的设备。
参考资料
- Tarlogic: ESP32 hidden HCI vendor commands, technical details and use cases
- Espressif's Response to Claimed Backdoor and Undocumented Commands in ESP32 Bluetooth Stack
- ESP32 Undocumented Bluetooth Commands: Clearing the Air - Espressif Developer Portal
- CVE-2025-27840 - NVD
- Tarlogic discovers undocumented HCI commands in Espressif's ESP32 module - INCIBE-CERT
- Undocumented commands found in Bluetooth chip used by a billion devices - BleepingComputer
- GitHub Advisory Database GHSA-jfwf-rfmg-7f8m