博通 WPS 永久零日:射频范围内即被 root,百万路由器无补丁可打

博通(Broadcom)Wi-Fi Protected Setup(WPS)实现中的一处内存破坏缺陷,在公开披露时既没有 CVE 编号,也没有可用补丁。研究员 Quentin Kaiser 用两台比利时运营商网关现场演示了射程内无口令 root 的完整攻击链。

事件概述

2026 年 10 月 16 日,Quentin Kaiser 在巴黎 Hexacon 会议公开了这项研究,并同步向博通 PSIRT 提交两份报告:7 月 18 日针对 eCos 芯片,7 月 27 日至 28 日针对 Linux 芯片。博通在 7 月 29 日回复称”补丁已存在,让设备厂商直接联系我们”,同时拒绝分配 CVE、也拒绝公开其给 OEM 的安全通知。Kaiser 随后把案子递到 CERT/CC,当天即被关闭——理由是博通作为自家产品的 CNA,拥有 CVE 分配权而选择不用。截至 10 月 19 日仍查不到对应 CVE。

技术细节

问题出在博通版 WPS 对分片 EAP 设置消息的重组处理:畸形分片序列会破坏路由器内存状态。Kaiser 在此基础上做出两个原语——任意读与任意写。任意读能把设备内存里的内容通过空口回传,他在 Orange Belgium 的 Askey TCG3000 网关上直接读出了 Wi-Fi 预共享密钥(PSK);任意写能执行自有代码,他在 Proximus 的 Sagemcom BBOX3V+ 网关上开出一个反向 shell,命令通道完全封装在 Wi-Fi 帧里,不需要外部服务器中转。

整个攻击不需要口令、不需要有人按 WPS 配对键、不需要用户交互,只要在射频覆盖范围内。演示视频贴近天线只为录屏干净,正常 Wi-Fi 距离同样可用。

影响评估

脆弱代码按 Kaiser 的追溯至少存在于 2010 年起的博通 Wi-Fi SDK 中,2018 年博通出过一个不完整的修复,随后建议客户改用 hostapd 而非依赖该补丁。芯片分两类:eCos 老平台(BCM3380、BCM3383、BCM33834)没有任何可行的修复路径,被直接判定为 forever day;Linux 平台(BCM3390、BCM65xx、BCM68xx)理论上可修,前提是每个 OEM 愿意换 Wi-Fi 协议栈并推固件。

比利时四大运营商里,Proximus、Orange Belgium、VOO 三家网关已确认可利用,Telenet 未测但大概率同样受影响,单家按数十万台估算。更广的清单覆盖消费级路由、思科小型商用 AP、华为、ARRIS 等,部分只是自动检测脚本标记的”疑似”。目前无在野利用证据。

修复建议

  • 先在路由器上关掉 WPS:挡不住这条链路,但能缩小其他 WPS 攻击面。
  • eCos 平台设备无法靠固件解决,只能换设备。运营商提供的网关,直接向运营商书面确认型号与芯片。
  • Linux 平台设备,向厂商索取已迁移 hostapd 的固件版本。
  • 资产盘点按芯片家族做,不要按外壳品牌做——没有 CVE,漏洞扫描器和 SBOM 检查都不会报这一条。
  • 对分支网点、门店、远程办公网关做无线侧监测:出现非预期的关联客户端、配置变更即告警。
# 固件解包后检索博通 WPS 组件的粗略做法
binwalk -e firmware.bin
grep -ril "wps" _firmware.bin.extracted/ | grep -i -E "bcm|broadcom"

# 在线初筛:Kaiser 已放出 YARA 规则与监听 AP 的检测脚本
# 命中只是"需要进一步核实",打过补丁的设备也可能匹配

参考来源