AirBorne:AirPlay 协议中可蠕虫式传播的零点击远程代码执行(RCE)漏洞

Uri KatzAvi LumelskyGal Elbaz Uri Katz , Avi Lumelsky , Gal Elbaz 2025年4月29日

概述

总结

Oligo Security Research 在 Apple 的 AirPlay 协议和 AirPlay 软件开发工具包 (SDK) 中发现了一组新的漏洞,第三方供应商使用该 SDK 将 AirPlay 集成到第三方设备中。

这些漏洞导致了一系列的攻击途径和结果,包括:

攻击者可以将这些漏洞串联起来,从而有可能控制支持 AirPlay 的设备,包括 Apple 设备和利用 AirPlay SDK 的第三方设备。

Oligo Security 的研究人员将这些漏洞及其导致的攻击途径命名为 “AirBorne”,因为攻击通过无线网络或点对点连接传输,并允许攻击者完全接管设备,并将该访问权限用作进一步利用的跳板。

Oligo 已经证明,其中两个漏洞(CVE-2025-24252 和 CVE-2025-24132)允许攻击者将可蠕虫式传播的零点击 RCE 漏洞武器化。这意味着攻击者可以接管某些启用 AirPlay 的设备,并执行诸如部署恶意软件等操作,这些恶意软件会传播到受感染设备连接的任何本地网络上的设备。这可能导致与间谍活动、勒索软件、供应链攻击等相关的其他复杂攻击。

由于 AirPlay 是 Apple 设备(Mac、iPhone、iPad、AppleTV 等)以及利用 AirPlay SDK 的第三方设备的基本软件,因此这类漏洞可能会产生深远的影响。

以下是一些数据:

Apple 和 Oligo 共同努力,彻底识别并解决这些漏洞,以保护最终用户。Apple 发布了最新版本的软件来解决这些漏洞,并留出了足够的时间来更新这些设备。在整个负责任的披露过程中,Oligo 向 Apple 提供了与这些漏洞相关的相关文档、流程和代码。

Oligo 总共向 Apple 披露了 23 个漏洞,导致发布了 17 个 CVE。完整的 CVE 列表和描述以及它们所能实现的具体攻击场景如下。

攻击类型

Oligo 发现的漏洞(无论是单独存在还是串联在一起)都可以实现各种可能的攻击途径,包括远程代码执行 (RCE)、访问控制列表 (ACL) 和用户交互绕过、本地任意文件读取、敏感信息泄露、中间人 (MITM) 攻击和拒绝服务 (DoS) 攻击。

在本文档中,我们选择重点关注使用 MacOS、AirPlay SDK 和 CarPlay 的设备上的 RCE 攻击。在未来的文章中,我们可能会研究与 AirPlay 相关的其他类型的攻击和其他设备。

远程代码执行 (RCE) 攻击

利用 AirBorne,攻击者可以在易受攻击的设备上实现 RCE,具体取决于某些因素,例如 Apple 和第三方设备的设置以及用户偏好。

为了提供示例,以下是针对使用不同设置配置的设备的一些不同的 RCE 攻击。

MacOS - 零点击 RCE

CVE-2025-24252 是一个 use-after-free (UAF) 漏洞,可以用作 UAF 或被操纵为 "任意释放" 操作,使攻击者能够在 MacOS 设备上远程执行代码。

当 CVE-2025-24252 与 CVE-2025-24206(用户交互绕过)链接在一起时,它允许在 MacOS 设备上进行零点击 RCE,这些设备与攻击者连接到同一网络,并且 AirPlay 接收器设置为 “同一网络上的任何人” 或 “所有人” 配置。在这种情况下,该漏洞允许蠕虫式传播漏洞,因为它启用了一种可以从一台机器传播到另一台机器而无需人工交互的攻击路径。

一个潜在的场景:受害者设备在使用公共 WiFi 时遭到入侵,然后连接到其雇主的网络,从而为攻击者提供了接管该网络上其他设备的途径。

下面的视频演示了我们的 "任意写" 原语的实际效果,实时覆盖了音乐应用程序。我们选择添加一个额外的点击来启动应用程序,以便您可以清楚地看到效果。因为我们的原语可以针对任何内存地址,所以有很多方法可以利用这个 use-after-free,而不需要打开应用程序。

MacOS - 一键点击 RCE

CVE-2025-24271 是一个访问控制列表 (ACL) 漏洞,它使攻击者无需配对即可发送 AirPlay 命令。当 CVE-2025-24271 与 CVE-2025-24137 链接在一起时,它允许在 MacOS 设备上进行一键点击 RCE,这些设备与攻击者连接到同一网络,并且 AirPlay 接收器设置为 “当前用户” 配置。

注意: CVE-2025-24137 已由 Apple 在 2025 年 1 月 27 日的 macOS Sequoia 15.3 中修补:

AirPlay SDK - 扬声器和接收器 - 零点击 RCE

CVE-2025-24132 是一个基于堆栈的缓冲区溢出漏洞。此漏洞允许在利用 AirPlay SDK 的扬声器和接收器上进行零点击 RCE。在所有配置下,这些设备都容易受到零点击 RCE 的攻击。在这种情况下,该漏洞允许蠕虫式传播漏洞,因为它启用了一种可以从一台设备传播到另一台设备而无需人工交互的攻击路径。

成功攻击结果的示例包括更多有趣的动作,例如在设备上显示图像或播放音乐,以及更严重的动作,例如使用设备的麦克风收听附近的对话,例如通过会议室中的设备进行窃听。

Car-Play 设备 - 零点击和一键点击 RCE

CVE-2025-24132 是一个基于堆栈的缓冲区溢出漏洞,也适用于 CarPlay 设备。此漏洞允许在某些条件下进行零点击 RCE。攻击结果的示例包括通过图像显示和播放音频来分散驾驶员的注意力,或者潜在的动作,例如窃听对话和跟踪车辆的位置。

攻击结果的示例包括通过图像显示和播放音频来分散驾驶员的注意力,以及更恶意的动作,例如窃听对话和跟踪车辆的位置。

其他攻击

由于 RCE 漏洞的潜在影响,本文档主要侧重于提供有关它们的详细信息。

但是,如前所述,使用这组漏洞,除了 RCE 之外,还可以进行其他攻击途径和漏洞利用。这些包括远程代码执行 (RCE)、访问控制列表 (ACL) 和用户交互绕过、本地任意文件读取、敏感信息泄露、中间人 (MITM) 攻击和拒绝服务 (DoS) 攻击。

我们可能会在未来的博客和演示文稿中提供有关这些其他攻击途径和漏洞利用的更多信息和见解。

我们为什么要关注 AirPlay

在我们对 0.0.0.0 day 漏洞 进行研究后,我们开始了这项研究。在扫描可能被 0.0.0.0 访问的开放端口时,我们注意到内部网络上的大多数设备都打开了 AirPlay 端口 7000。为了了解该协议,我们开始研究 AirPlay 服务器处理的基本命令。令我们惊讶的是,许多协议命令在默认设置中完全可以访问。在我们最初查看该协议时,我们注意到处理流程的命令中存在一些模式,这些模式实际上是 "代码异味"。这些有问题的流程导致我们进一步挖掘并开展了这项广泛的研究。

技术概述

攻击向量的工作原理

AirPlay 通过端口 7000 使用专有的 API 进行通信,该 API 混合了 HTTPRTSP 协议的各个方面。在此系统中,许多命令(尤其是需要额外参数的命令)都以 plist 格式编码的 HTTP 数据有效负载发送。

属性列表或 plist 是一种结构化数据格式,广泛用于 Apple 生态系统中,用于序列化和存储数据。plists 将数据表示为键值对的层次结构集合,从而可以组织复杂的信息。它们支持各种数据类型,包括字符串、数字、日期、布尔值、数组和字典,并且可以以 XML 或二进制格式进行序列化。

Apple 的 Core Foundation API 在处理 plist 文件方面起着至关重要的作用。这些 API 提供了用于读取、写入和序列化 plists 的综合功能。

由于 plists 是将参数发送到 AirPlay 接收器的主要方式,因此了解它们及其结构对于理解该协议至关重要。此外,许多漏洞都直接与 plist 参数解析流程有关。

plist 参数处理不当引起的类型混淆漏洞的一个示例是 CVE-2025-24129。由于它已于 1 月份发布,因此我们可以放心地分享有关它的一些技术细节。包括今天发布的漏洞在内的其余漏洞的技术细节将在我们确定大多数用户已更新到最新版本且不再受到影响后的后续文章中发布。

使用 CVE-2025-24129 演示的类型混淆

URI: /getPropertyMethod: POST

AirPlay 中的 getProperty 命令用于从接收器检索特定属性或设置,例如当前音量级别或设备名称。

方法 CFPropertyCreateWithData 从客户端发送的 HTTP 数据创建一个 propertylist。该方法可以根据用户提供的数据返回不同的 CFType 值 (CFArray/CFString 等)。

正如我们在上图中看到的,属性列表是使用 CFPropertyListCreateWithData 创建的,生成的 plist 的类型 (CFType) 未经过检查,并假定为一个字典。如果创建的 plist 不是 CFDictionary - 使用 plist 调用诸如 CFDictionaryGetValue 之类的方法将导致进程崩溃。

可利用性:CFDictionaryGetValue 是 CoreFoundation 库的一部分,因此此问题的可利用性取决于 CoreFoundation 版本。Core Foundation 版本之间的可利用性差异对于我们发现的大多数类型混淆来说都是正确的

未收到 CVE-IDS 的漏洞

Oligo Security 研究团队向 Apple 报告了 23 个漏洞。所有缺陷最终都已修复,但并非所有缺陷都收到了 CVE-ID。在某些情况下,Apple 已根据其修复方法和解决时间,而不是按漏洞类型、影响或 AirPlay 协议代码中的位置,将某些漏洞分组到一个 CVE 中。

以下是未收到 CVE-ID 的两个漏洞示例。

/setProperty 路由崩溃

URI: /setProperty

方法: PUT

配置: 全部

用户交互: 1 次点击以接受连接

AirPlay 中的 setProperty 命令允许发送者配置接收器上的特定属性或设置,调整音量、播放选项或其他设备特定功能等元素。大多数 AirPlay POST /PUT 命令需要一个以 plist 格式格式化的数据 HTTP 请求。

在 mcProcessor_requestProcessSetProxiedProperty 中格式化 HTTP 数据 plist

服务器期望 /setProperty plist 有效负载中有一个值键

value 变量用于创建响应,而无需检查它是否为空:

如果用户未在请求中发送 value 键,它将保持为空。使用 null 调用 CFDictionarySetValue 会导致未处理的异常,从而导致 ControlCenter 进程崩溃。

使用 WindowServer 崩溃远程注销用户

_ URI: rtsp:///stream 方法: SETUP 配置: 同一网络上的任何人 配置: 所有人 用户交互: 使用 CVE-2025-24206 零点击 _

AirPlay 中的 SETUP 方法使用 RTSP(实时流协议),是启动从 AirPlay 发送者(例如 iPhone/iPad)到接收者(例如 Apple TV)的媒体流的过程的一部分。

发送多个 SETUP 命令会创建多个视频流。由于流的数量不受限制,我们可以在 while 循环中创建流。发送大量流将增加 WindowServer 服务的内存消耗和响应时间。发送 SETUP 命令几秒钟后,看门狗会终止 WindowServer 服务,从而注销用户。

此漏洞允许网络上的攻击者远程注销同一网络上或附近的用户。

AirBorne 漏洞

AirBorne 将设备暴露于多次攻击,每个漏洞都构成独特的安全风险。下面,我们分析了这些漏洞允许执行的每种类型,以及潜在的影响。

ACL 和用户交互绕过

AirPlay 使用两个主要功能来处理权限:

  1. ACL -- 根据 AirPlay 接收器配置限制访问。

  1. 点击以接受 – 某些操作需要用户点击 "接受" 并批准 AirPlay 连接

我们发现多个 ACL 绕过漏洞和问题,以及一个用户交互绕过问题,当 macOS 设备配置为 AirPlay 接收器打开并且设置为 "当前用户" 的默认设置时,AirBorne 漏洞可以利用许多漏洞。

CVE-2025-24206 还通过绕过 "接受" 点击要求使许多攻击成为零点击攻击

用户交互绕过

| CVE | CWE | Security Advisories | | :------------- | :------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | CVE-2025-24206 | CWE-288: Authentication Bypass Using an Alternate Path or Channel | tvOS 18.4 iOS 18.4 and iPadOS 18.4 iPadOS 17.7.6 macOS Sequoia 15.4 visionOS 2.4 macOS Sonoma 14.7.5 macOS Ventura 13.7.5 |

ACL 问题和绕过

| CVE | CWE | Security Advisories | | :------------- | :----------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | CVE-2025-24271 (Group) – Improper Access Control | CWE-306: Missing Authentication for Critical Function | tvOS 18.4 iOS 18.4 and iPadOS 18.4 iPadOS 17.7.6 macOS Sequoia 15.4 visionOS 2.4 macOS Sonoma 14.7.5 macOS Ventura 13.7.5 | | CVE-2025-24271 (Group) – type confusion | CWE-843: Access of Resource Using Incompatible Type (‘Type Confusion’) | tvOS 18.4 iOS 18.4 and iPadOS 18.4 iPadOS 17.7.6 macOS Sequoia 15.4 visionOS 2.4 macOS Sonoma 14.7.5 macOS Ventura 13.7.5 |

远程代码执行 (RCE)

该捆绑包中最严重的漏洞可以实现远程代码执行,从而使攻击者可以完全接管易受攻击的设备。这些漏洞使 AirBorne 具有蠕虫式传播的能力。在入侵一台设备后,攻击者可以使用相同的漏洞传播到其他设备和网络,从而扩大其影响和破坏。

以下是可以用来接管设备 (RCE) 的漏洞。

| CVE | CWE | Security Advisories | | :------------- | :-------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------ | | CVE-2025-24132 | CWE-121: Stack-based Buffer Overflow | AirPlay audio SDK 2.7.1 AirPlay video SDK 3.6.0.126 CarPlay Communication Plug-in R18.1 | | CVE-2025-30422 (potential RCE) | CWE-190: Integer Overflow or Wraparound | AirPlay audio SDK 2.7.1 AirPlay video SDK 3.6.0.126 CarPlay Communication Plug-in R18.1 | | CVE-2025-24252 | CWE-416: Use After Free | tvOS 18.4 iOS 18.4 and iPadOS 18.4 iPadOS 17.7.6 macOS Sequoia 15.4 visionOS 2.4 macOS Sonoma 14.7.5 macOS Ventura 13.7.5 | | CVE-2025-24137 | CWE-843: Access of Resource Using Incompatible Type (‘Type Confusion’) | macOS 14.7.3 visionOS 2.3 tvOS 18.3 macOS 15.3 iPadOS 17.7.4 iOS 18.3 and iPadOS 18.3 | | CVE-2025-31197 (potential RCE) | CWE-416: Use After Free | tvOS 18.4 iOS 18.4 and iPadOS 18.4 macOS Sequoia 15.4 visionOS 2.4 macOS Sonoma 14.7.5 macOS Ventura 13.7.5 iPadOS 17.7.6 |

本地任意文件读取

另一个漏洞允许本地用户读取属于其他用户的文件。通过利用此缺陷,攻击者可以读取敏感数据、提取凭据,或者可能获得对以更高权限运行的进程的控制。

| CVE | CWE | Security Advisories | | :------------- | :--------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | CVE-2025-24270 (Group) | CWE-59: Improper Link Resolution Before File Access | tvOS 18.4 iOS 18.4 and iPadOS 18.4 iPadOS 17.7.6 macOS Sequoia 15.4 visionOS 2.4 macOS Sonoma 14.7.5 macOS Ventura 13.7.5 |

敏感信息泄露

另一个严重缺陷可能导致通过网络暴露敏感数据。此缺陷会将敏感日志数据暴露给网络上的任何用户,从而允许攻击者对设备进行指纹识别并获取有关用户和设备的敏感信息。

可用于获取敏感数据的漏洞:

| CVE | CWE | Security Advisories | | :------------- | :----------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | CVE-2025-24270 (Group) | CWE-200: Exposure of Sensitive Information to an Unauthorized Actor | tvOS 18.4 iOS 18.4 and iPadOS 18.4 iPadOS 17.7.6 macOS Sequoia 15.4 visionOS 2.4 macOS Sonoma 14.7.5 macOS Ventura 13.7.5 |

其他漏洞

以下漏洞使攻击者能够执行各种不同的操作,例如拒绝服务 (DoS)。鉴于与 AirBorne 相关的 CVE 数量众多,因此无法对潜在的可利用性进行广泛的研究。

| CVE | CWE | Security Advisories | | :------------- | :----------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------ | | CVE-2025-24177 | CWE-476: NULL Pointer Dereference | macOS Sequoia 15.3 iOS 18.3 and iPadOS 18.3 | | CVE-2025-24131 | CWE-230: Improper Handling of Missing Values | [visionOS 2.3](https