CVE-2025-24132 (AirBourne) 的 POC。目前仅触发溢出并导致崩溃。
CVE-2025-24132 (AirBourne) 的 POC。目前仅触发溢出并导致崩溃。
为了尝试获得我的汽车车机系统的 root 访问权限,我研究并整理了关于由 Oligo Security 发现的 AirPlay 漏洞 CVE-2025-24132(命名为 Airbourne)的所有信息。
https://www.oligo.security/blog/airborne
这是我第一个逆向工程项目。我是在从未使用过调试器、Linux 和编程经验很少、并且直到项目中途才接触过 MacOS 的情况下开始这项工作的。也许我应该从一些 CTF 开始……算了。过去几个月我断断续续地研究这个,只是为了看看我能否做到。
花了好几个月才获得一个易受攻击和已修补的二进制文件副本进行对比,然后又花了一个月才让它们真正在模拟器中运行。
但事实证明,易受攻击的代码在模拟器中根本无法到达,因为它需要与逻辑板上的物理 MFi 芯片进行通信。在挣扎了两个月,想不明白为什么无法触发溢出,然后意识到问题所在后,我通过修补掉对 MFi 芯片响应的检查,并用垃圾数据填充它本应返回的内容,从而成功阉割了二进制文件。这使我终于能够触发溢出,并充分理解它,进而在真实系统上造成崩溃。
溢出存在于 AES CTR 加密处理中。SETUP 数据包中传入的加密密钥大小未经检查,且假定为 16,并创建了一个大小为 16 的缓冲区。
这些崩溃几乎难以察觉,因为服务器通常立即重启并重新连接,这仅会导致 CarPlay 系统短暂失去音频或黑屏几秒钟。我尚未弄清楚它们是如何泄露内存的,因此目前这仅适用于堆栈保护已禁用的设备。
找到一种泄露内存的方法以绕过堆栈保护。
这适用于不需要任何类型授权的 CarPlay 单元或 AirPlay 单元。如果首次配对需要 PIN 码,则此方法无效,因为涉及更多未实现的配对步骤。
对于基于蓝牙的设备,为了避免处理蓝牙配对的所有麻烦,你可以像我所做的那样,直接下载 Pyto 之类的应用程序并从手机运行脚本,这样简单得多。
我将在发现添加已知已修补的设备。
所有支持 Airplay 的 Onkyo AV 接收器都应受此漏洞影响。我的测试单元是 TX-NR656,它没有任何堆栈保护。 固件版本 3.1 之前的 Creston DM-NAX-8ZSA 单元易受攻击,并且没有 canaries,但 Airplay 进程运行在容器中。 Kia CCNC 车机单元具有适当的堆栈保护,到目前为止我未能绕过它,但根据系统日志,carplayserver 以 root 身份运行。