索尼WH-1000XM5蓝牙认证漏洞与中间人攻击风险深度解析

本文详细分析了索尼WH-1000XM5耳机存在的蓝牙认证不备漏洞,攻击者可利用此漏洞实现中间人攻击,威胁设备通信的机密性、完整性和可用性。报告包含PoC步骤、潜在攻击场景及修复建议。

索尼 | 报告 #2642615 - 明確な認証不備および潜在的な中間者攻撃の可能性(Clear Authentication Deficiencies & Potential for Man-in-the-Middle Attacks) | HackerOne

执行摘要

本报告详细说明了在索尼WH-1000XM5产品中发现的认证漏洞。通过将此漏洞与现有蓝牙攻击结合,可轻松实现中间人(MitM)攻击。报告者请求为此漏洞分配CVE编号。

漏洞类型

认证不备

漏洞详情

恶意第三方(以下简称攻击者)可冒充已与WH-1000XM5配对的设备,使WH-1000XM5在非配对模式下且无需用户任何操作即可与攻击者设备连接。检查蓝牙数据包后发现,WH-1000XM5在重新连接时的认证存在缺陷,未遵循安全简单配对(SSP)的重新连接流程。

受影响产品

WH-1000XM5

注意:此漏洞可能不限于WH-1000XM5。

PoC

本节介绍PoC所需的设备和设置,以及重现此漏洞的步骤。

PoC设备

受害者主设备

  • 制造商:Microsoft
  • 型号:Surface Laptop 4
  • 操作系统:Windows 11 Home
  • 驱动:Intel(R) Wireless Bluetooth(R)
  • 蓝牙版本:5.1

受害者从设备

  • 制造商:Sony Corporation
  • 型号:WH-1000XM5
  • 蓝牙版本:5.2

攻击者设备

  • 型号:Raspberry Pi 4 Model B
  • 操作系统:Raspberry Pi OS
  • 系统:32bit
  • Debian版本:11 bullseye
  • 内核版本:6.1.55
  • BlueZ版本:5.55
  • 蓝牙制造商:Cypress Semiconductor
  • 蓝牙版本:5.0

PoC设置

预先配对WH-1000XM5和Surface Laptop 4。

PoC步骤

  1. 将Raspberry Pi的蓝牙地址和适配器蓝牙名称欺骗为与Surface Laptop 4相同的设置。
  2. 将Raspberry Pi的蓝牙适配器状态设置为可发现。
  3. 将WH-1000XM5闲置一段时间或手动关闭电源。
  4. 关闭Surface Laptop 4的电源。
  5. 打开WH-1000XM5电源(注意:为避免进入配对模式,请注意不要按住电源按钮超过5秒)。

按以上步骤操作后,WH-1000XM5虽未处于配对模式,但仍会与Raspberry Pi配对并连接。重现此漏洞时在Raspberry Pi端捕获的蓝牙数据包已附加(参见WH-1000XM5_vuln_poc.pcapng)。请注意,Raspberry Pi此前从未与WH-1000XM5配对过。

注意:为证明此漏洞重现的现实性,解释在关闭Surface Laptop 4后打开WH-1000XM5的原因。报告者曾将WH-1000XM5与另一台设备(Pixel 7 Pro)配对。打开WH-1000XM5以通过Pixel 7 Pro播放音乐时,在打开Pixel 7 Pro的蓝牙设置界面并尝试连接WH-1000XM5期间,Raspberry Pi和WH-1000XM5自动连接,无需任何操作。

潜在MitM攻击

神户大学的研究团队提出了一种利用蓝牙省电模式的设备劫持攻击。详情请参阅2024年7月信息处理学会发表的论文《利用蓝牙省电模式的设备劫持攻击》。

虽然WH-1000XM5并非省电模式,但其定义了在一定时间无操作后自动关闭电源的功能(根据帮助指南)。此行为类似于省电模式中的睡眠模式行为。研究人员证明,攻击者可利用此类蓝牙会话的临时断开来劫持蓝牙会话。

假设WH-1000XM5与笔记本电脑已配对,若WH-1000XM5电源自动关闭,攻击者可冒充WH-1000XM5与笔记本电脑配对。反之,若攻击者冒充笔记本电脑,本报告中的漏洞使攻击者可与WH-1000XM5配对。因此,攻击者成为WH-1000XM5与笔记本电脑会话的中间人。此结果不仅对完整性和可用性,也对机密性构成重大威胁。

请求

报告者认为此漏洞并非贵公司产品或蓝牙协议规范所致。期待贵公司对此报告的回应。

若贵公司为CNA,请分配CVE编号。若非CNA,报告者将向IPA/JPCERT报告并请求分配CVE编号。

附录

更改Raspberry Pi蓝牙名称的方法

  1. 在/etc目录下创建machine-info文件。
  2. 打开创建的machine-info文件,使用PRETTY_HOSTNAME变量定义蓝牙名称。
    • 例如:若蓝牙名称欲设为"Example Laptop",则在machine-info中写入PRETTY_HOSTNAME=Example Laptop。
  3. 配置后,请重启蓝牙服务。

更改Raspberry Pi蓝牙地址的方法

报告附加了一个用于更改Raspberry Pi蓝牙地址的Golang脚本(参见main.go)。可在Raspberry Pi上构建main.go文件,并使用以下示例命令更改蓝牙地址:

1
2
3
4
5
6
7
8
9
# 构建源代码
go build main.go -o chgbtaddr

# 更改地址
# 假设笔记本电脑的蓝牙地址为00:11:22:33:44:55
./chgbtaddr -addr 00:11:22:33:44:55

# 重启服务
sudo systemctl restart bluetooth.service

感谢关注本报告。若需其他信息或更详细信息(如展示PoC全过程的演示视频、产品编号等),请联系报告者,将尽力配合。期待贵公司及时回应与合作,共同应对此潜在安全风险。

影响

  • 拒绝服务(DoS)
  • 链接密钥劫持
  • 中间人攻击

时间线与讨论

  • 2024年8月6日:trapedev向索尼提交报告。
  • 后续讨论:报告者与索尼安全团队就漏洞细节、修复进度、CVE分配及公开披露进行多次沟通。
  • 修复发布:漏洞修复于2025年2月27日发布。
  • 奖励与关闭:索尼向报告者赠送礼品,报告状态标记为“已解决”。
  • 披露请求:报告者请求公开报告,索尼团队同意披露。

注意:部分个人信息和细节已模糊处理(以████显示)。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计