概要
要約(TL;DR)
Oligo Security Researchは、AppleのAirPlayプロトコルおよびAirPlayソフトウェア開発キット(SDK)における新たな脆弱性一式を発見しました。AirPlay SDKは、サードパーティベンダーがAirPlayをサードパーティ製デバイスに統合するために使用されています。
これらの脆弱性により、以下を含む多様な攻撃ベクトルと結果が可能になります:
- ゼロクリックRCE
- ワンクリックRCE
- アクセス制御リスト(ACL)およびユーザー操作のバイパス
- ローカル任意ファイル読み取り
- 機微情報の漏えい
- 中間者(MITM)攻撃
- サービス拒否(DoS)
これらの脆弱性は攻撃者によって連鎖させることができ、AirPlayをサポートするデバイス(AppleデバイスおよびAirPlay SDKを利用するサードパーティ製デバイスの双方を含む)を制御できる可能性があります。
これらの脆弱性と、それによって可能になる攻撃ベクトルは、Oligo Securityの研究者により「AirBorne」と命名されました。可能となる攻撃が無線ネットワークまたはピアツーピア接続を介して伝播し、攻撃者がデバイスを完全に乗っ取り、そのアクセスをさらなる侵害の足がかりとして利用できるためです。
Oligoは、2つの脆弱性(CVE-2025-24252およびCVE-2025-24132)により、攻撃者がワーム化可能なゼロクリックRCEエクスプロイトを武器化できることを実証しました。これは、攻撃者が特定のAirPlay対応デバイスを乗っ取り、感染デバイスが接続する任意のローカルネットワーク上のデバイスへ拡散するマルウェアを展開する、といったことが可能になることを意味します。これにより、諜報、ランサムウェア、サプライチェーン攻撃など、より高度な攻撃の実行につながる可能性があります。
AirPlayはAppleデバイス(Mac、iPhone、iPad、AppleTVなど)にとって基盤的なソフトウェアであると同時に、AirPlay SDKを利用するサードパーティ製デバイスにも組み込まれているため、この種の脆弱性は広範な影響を及ぼし得ます。
参考として:
- 世界中のすべてのAppleデバイスがAirBorne経由のRCEに脆弱というわけではありませんが、Appleは2025年1月時点で、世界にアクティブなAppleデバイスが23.5億台あると述べています。
- 2018年、Appleは世界で1億人を超えるアクティブなMacOSユーザーがいると示しました。
- iPhone、Apple TV、Vision Proなど他のAppleデバイスは、別のAirBorne脆弱性の影響を受けます。iPhoneなどのデバイスでは、ユーザーが端末設定でAirPlayレシーバーを有効化する必要があります。
- さらに、AirPlayをサポートするサードパーティ製オーディオ機器の数は数千万台規模と見積もれます。
- CarPlay対応デバイスの正確な台数は不明ですが、広く利用されており、800を超える車種モデルで利用可能です。
AppleとOligoは、エンドユーザー保護を目的として、脆弱性の特定と対処に向けて緊密に協力してきました。Appleは脆弱性に対処する最新ソフトウェアをリリースし、デバイスが更新されるための時間も確保しました。責任ある開示プロセスを通じて、Oligoはこれらの脆弱性に関連する文書、手順、コードをAppleに提供しました。
Oligoは合計23件の脆弱性をAppleに開示し、その結果17件のCVEが発行されました。これらCVEの完全な一覧と説明、およびそれらが可能にする具体的な攻撃シナリオは以下に掲載しています。
攻撃の種類
Oligoが発見した脆弱性は、単独でも連鎖させても、リモートコード実行(RCE)、アクセス制御リスト(ACL)およびユーザー操作のバイパス、ローカル任意ファイル読み取り、機微情報の漏えい、中間者(MITM)攻撃、サービス拒否(DoS)攻撃など、さまざまな攻撃ベクトルを可能にします。
本ドキュメントでは、MacOS、AirPlay SDK、CarPlayを使用するデバイスに対するRCE攻撃に焦点を当てます。今後の投稿では、AirPlayに関連する他の種類の攻撃や他のデバイスについても検討する可能性があります。
リモートコード実行(RCE)攻撃
AirBorneを用いることで、攻撃者は、Appleおよびサードパーティ製デバイスの設定やユーザーの設定など、特定の要因に応じて、脆弱なデバイス上でRCEを達成できます。
例として、以下に、異なる設定で構成されたデバイスに対して可能なRCE攻撃のいくつかを示します。
MacOS – ゼロクリックRCE
CVE-2025-24252 はuse-after-free(UAF)脆弱性であり、UAFとして利用できるほか、「任意free」動作へと操作することで、攻撃者がMacOSデバイス上でリモートからコードを実行できるようになります。
CVE-2025-24252をCVE-2025-24206(ユーザー操作バイパス)と連鎖させると、AirPlayレシーバーがオンで、「同一ネットワーク上の誰でも」または「全員」の設定になっており、攻撃者と同じネットワークに接続しているMacOSデバイスに対して、ゼロクリックRCEが可能になります。この脆弱性は、人の操作なしに1台から別のマシンへ拡散できる攻撃経路を提供するため、これらの条件下でワーム化可能なエクスプロイトを可能にします。
想定シナリオ:被害者のデバイスが公衆WiFi利用中に侵害され、その後勤務先ネットワークに接続することで、攻撃者がそのネットワーク上の追加デバイスを乗っ取る経路が生まれます。
以下の動画は、当社の「write-what-where」プリミティブが動作している様子を示しており、Musicアプリをリアルタイムで上書きしています。効果が明確に分かるよう、アプリケーションを起動するための追加クリックを含めました。当社のプリミティブは任意のメモリアドレスを標的にできるため、アプリケーションを開くことを必要としない、このuse-after-freeの悪用方法は多数存在します。
MacOS – ワンクリックRCE
CVE-2025-24271はアクセス制御リスト(ACL)の脆弱性で、攻撃者がペアリングなしにAirPlayコマンドを送信できるようになります。CVE-2025-24271をCVE-2025-24137と連鎖させると、AirPlayレシーバーがオンで「現在のユーザー」設定になっており、攻撃者と同じネットワークに接続しているMacOSデバイスに対して、ワンクリックRCEが可能になります。
注:CVE-2025-24137は、2025年1月27日にmacOS Sequoia 15.3でAppleにより修正されました:
AirPlay SDK – スピーカーおよびレシーバー – ゼロクリックRCE
CVE-2025-24132はスタックベースのバッファオーバーフロー脆弱性です。この脆弱性により、AirPlay SDKを利用するスピーカーおよびレシーバーでゼロクリックRCEが可能になります。これらのデバイスは、すべての構成においてゼロクリックRCEに脆弱です。この脆弱性は、人の操作なしに1台から別のデバイスへ拡散できる攻撃経路を提供するため、これらの条件下でワーム化可能なエクスプロイトを可能にします。
成功した攻撃結果の例としては、デバイスに画像を表示したり音楽を再生したりするような比較的軽いものから、デバイスのマイクを使って近くの会話を盗聴する(たとえば重要会議室にあるデバイスを介した盗聴)といった深刻なものまで含まれます。
Car-Playデバイス – ゼロクリックおよびワンクリックRCE
CVE-2025-24132はスタックベースのバッファオーバーフロー脆弱性であり、CarPlayデバイスにも適用されます。この脆弱性により、特定の条件下でゼロクリックRCEが可能になります。攻撃結果の例としては、画像表示や音声再生によって運転者の注意をそらすこと、あるいは会話の盗聴や車両位置の追跡といった行為が考えられます。
- WiFi条件:CarPlayデバイスのWiFiホットスポットを使用し、攻撃者がCarPlayユニットの近距離にいる場合、RCE攻撃を実行できる可能性があります。デバイスのホットスポットパスワードがデフォルトで予測可能、または既知である場合、アクセスを得たうえでRCEを実行することが可能です。
- Bluetooth条件:一部のCarPlayデバイスベンダーは、IAP2プロトコル上のBluetooth経由でWiFi認証情報を交換し、デバイスのペアリングにPINを要求します。攻撃者が1) CarPlayユニットの近距離におり、かつ2) AirPlayデバイスに表示されるPINを見て入力できる場合、RCE攻撃を実行できる可能性があります。場合によっては、被害者によるクリックが必要となるため、これはワンクリックRCEとなります。
- USB条件:非ワイヤレスのCarPlayデバイスは、物理接続(USB)経由で脆弱です。
攻撃結果の例としては、画像表示や音声再生によって運転者の注意をそらすことから、会話の盗聴や車両位置の追跡といった、より悪質な行為まで含まれます。
その他の攻撃
RCE脆弱性の潜在的影響を踏まえ、本ドキュメントは主としてそれらの詳細提供に焦点を当てています。
しかし前述のとおり、この脆弱性セットを用いれば、RCE以外の攻撃ベクトルやエクスプロイトも可能です。これには、リモートコード実行(RCE)、アクセス制御リスト(ACL)およびユーザー操作のバイパス、ローカル任意ファイル読み取り、機微情報の漏えい、中間者(MITM)攻撃、サービス拒否(DoS)攻撃が含まれます。
これら他の攻撃ベクトルやエクスプロイトについては、今後のブログやプレゼンテーションで、より多くの情報と洞察を提供する可能性があります。
AirPlayを調査した理由
本研究は、0.0.0.0 day脆弱性に関する取り組みの後に開始しました。0.0.0.0からアクセス可能な可能性のあるオープンポートをスキャンしている際、社内ネットワーク上のほとんどのデバイスでAirPlayのポート7000が開いていることに気づきました。プロトコルを理解したいという好奇心から、AirPlayサーバーが処理する基本コマンドを調べ始めました。驚いたことに、多くのプロトコルコマンドがデフォルト設定のままで完全にアクセス可能でした。プロトコルを初期調査する中で、フローを処理するコマンド内に、実質的に「コードスメル」と言えるパターンがいくつか見られました。これらの疑わしいフローが、さらに深掘りし、この大規模な研究を実施するきっかけとなりました。
技術概要
攻撃ベクトルの仕組み
AirPlayは、HTTPとRTSPプロトコルの要素を組み合わせた独自のAPIを用い、ポート7000で通信します。このシステムでは、多くのコマンド、特に追加パラメータを必要とするものが、plist形式でエンコードされたHTTPデータペイロードとして送信されます。
プロパティリスト、すなわちplistは、Appleエコシステム内で広く使用される構造化データ形式で、データのシリアライズと保存に用いられます。plistは、階層的なキー・バリューペアの集合としてデータを表現し、複雑な情報を整理できます。文字列、数値、日付、ブール値、配列、辞書など、さまざまなデータ型をサポートし、XMLまたはバイナリ形式のいずれかでシリアライズできます。
AppleのCore Foundation APIは、plistファイルの取り扱いにおいて重要な役割を果たします。これらのAPIは、plistの読み取り、書き込み、シリアライズのための包括的な機能を提供します。
plistはAirPlayレシーバーへ引数を送る主要な手段であるため、plistとその構造を理解することは、プロトコルを理解する上で不可欠です。さらに、多くの脆弱性はplist引数のパースフローに直接関連しています。
plistパラメータの不適切な取り扱いに起因する型混同脆弱性の一例がCVE-2025-24129です。これは1月にすでに公開されているため、いくつかの技術的詳細を共有しても問題ないと判断しました。残りの脆弱性(本日公開されたものを含む)の技術的詳細については、ほとんどのユーザーが最新バージョンへ更新し、影響を受けなくなったことを確認した後、別の投稿で扱います。
CVE-2025-24129を用いて示す型混同URI: /getProperty
Method: POST
AirPlayのgetPropertyコマンドは、現在の音量レベルやデバイス名など、レシーバーから特定のプロパティや設定を取得するために使用されます。
メソッドCFPropertyCreateWithDataは、クライアントから送信されたHTTPデータからpropertylistを作成します。このメソッドは、ユーザーが提供するデータに応じて、異なるCFType値(CFArray/CFStringなど)を返すことがあります。
上の画像のとおり、CFPropertyListCreateWithDataを用いてプロパティリストが作成されますが、生成されたplistの型(CFType)はチェックされず、辞書であると仮定されています。
作成されたplistがCFDictionaryでない場合、plistに対してCFDictionaryGetValueのようなメソッドを呼び出すと、プロセスがクラッシュします。
悪用可能性:CFDictionaryGetValueはCoreFoundationライブラリの一部であるため、この問題の悪用可能性はCoreFoundationのバージョンに依存します。Core Foundationのバージョン間で悪用可能性が異なる点は、私たちが見つけた型混同の多くに当てはまります。
CVE-IDが付与されなかった脆弱性
Oligo Securityの研究チームは、23件の脆弱性をAppleに報告しました。すべての欠陥は最終的に修正されましたが、すべてにCVE-IDが付与されたわけではありません。場合によっては、Appleは脆弱性の種類、影響、AirPlayプロトコルコード内の位置ではなく、修正方法と解決までの時間に基づいて、特定の脆弱性を単一のCVEにまとめています。
CVE-IDが付与されなかった脆弱性の例を2つ、以下に示します。
/setProperty ルートクラッシュ
URI: /setProperty
Method: PUT
Configurations: すべて
User Interaction: 接続を受け入れるために1クリック
AirPlayのsetPropertyコマンドは、送信側がレシーバー上の特定のプロパティや設定を構成できるようにし、音量、再生オプション、その他デバイス固有の機能などを調整します。
多くのAirPlay POST/PUTコマンドは、データがplistとして整形されたHTTPリクエストを想定しています。
サーバーは、/setPropertyのplistペイロードにvalueキーがあることを想定しています
value変数は、nullかどうかを確認せずにレスポンス作成に使用されます:
ユーザーがリクエストにvalueキーを送らなかった場合、valueはnullのままになります。
nullを指定してCFDictionarySetValueを呼び出すと、未処理の例外が発生し、ControlCenterプロセスがクラッシュします。
WindowServerクラッシュを利用したリモートユーザーログアウト
URI: rtsp://<ip>/stream
Method: SETUP
Configurations: 同一ネットワーク上の誰でも
Configurations: 全員
User Interaction: CVE-2025-24206を用いて0クリック
AirPlayのSETUPメソッドは、RTSP(Real-Time Streaming Protocol)を使用し、AirPlay送信側(iPhone/iPadなど)から受信側(Apple TVなど)へメディアストリームを開始するプロセスの一部です。
複数のSETUPコマンドを送信すると、複数のビデオストリームが作成されます。ストリーム数に制限がないため、whileループでストリームを作成できます。多数のストリームを送信すると、WindowServerサービスのメモリ消費と応答時間が増加します。SETUPコマンド送信を数秒続けると、watchdogがWindowServerサービスを強制終了し、ユーザーがログアウトされます。
この脆弱性により、ネットワーク上の攻撃者は、同一ネットワーク上、または近距離にいるユーザーをリモートでログアウトさせることができます。
AirBorneの脆弱性
AirBorneはデバイスを複数の攻撃にさらし、各脆弱性は固有のセキュリティリスクをもたらします。以下では、脆弱性が可能にする内容の各カテゴリと、潜在的な影響を分析します。
ACLおよびユーザー操作のバイパス
AirPlayは権限を扱うために主に2つの機能を使用します:
- ACL — AirPlayレシーバーの構成に基づいてアクセスを制限します。
- クリックして承認 – 一部の操作では、ユーザーが「承認」をクリックしてAirPlay接続を承認する必要があります
私たちは、複数のACLバイパス脆弱性および問題、そして1件のユーザー操作バイパス問題を発見しました。これにより、macOSデバイスがAirPlayレシーバーをオンにし、「現在のユーザー」に設定されたデフォルト設定で構成されている場合、AirBorne脆弱性を用いた多くのエクスプロイトが可能になります。
CVE-2025-24206は、「承認」クリック要件をバイパスすることで、多くの攻撃をゼロクリック化します。
ユーザー操作バイパス
ACLの問題とバイパス
リモートコード実行(RCE)
このバンドルで最も深刻な脆弱性はリモートコード実行を可能にし、攻撃者が脆弱なデバイスを完全に乗っ取れるようにします。これらの脆弱性こそがAirBorneをワーム化可能にしています。1台のデバイスを侵害した後、攻撃者は同じ脆弱性を用いて他のデバイスやネットワークへ伝播し、影響と被害を拡大できます。
以下は、デバイスの乗っ取り(RCE)に利用できる脆弱性です。
ローカル任意ファイル読み取り
別の脆弱性により、ローカルユーザーが他ユーザーに属するファイルを読み取れるようになります。この欠陥を悪用することで、攻撃者は機微データを読み取ったり、認証情報を抽出したり、より高い権限で動作するプロセスの制御を得たりする可能性があります。
機微情報の漏えい
別の重大な欠陥により、ネットワーク越しに機微データが露出する可能性があります。この欠陥は、機微なログデータをネットワーク上の任意のユーザーに公開し、攻撃者がデバイスのフィンガープリントを行い、ユーザーやデバイスに関する機微情報を取得できるようにします。
機微データの取得に利用できる脆弱性:
追加の脆弱性
以下の脆弱性は、サービス拒否(DoS)など、攻撃者にさまざまな行為を可能にします。AirBorneに関連するCVEの数が多いため、潜在的な悪用可能性について広範な調査を行うことはできませんでした。
上記の脆弱性はさまざまな影響を持ち得ますが、AirPlayサーバーをクラッシュさせることは中間者攻撃の足がかりになります。たとえば、取締役会が始まったばかりの状況を考えてみましょう。CEOが会議をオフィスのテレビにAirPlayで映したいとします。攻撃者はDoS脆弱性のいずれかを用いて、次のことが可能です:
- DoS脆弱性のいずれかを悪用してテレビのAirPlayレシーバーをクラッシュさせる
- mDNSを用いてネットワーク上でテレビのIDを偽装する
- CEOが偽のAirPlayサーバーへストリーミングを開始するのを待つ
- 偽サーバーから実テレビへCEOのストリームを中継する
- 傍受したストリームから会議内容全体を取得し録画する
身を守る方法
組織にとって、社内のAppleデバイスおよびAirPlayをサポートするその他のマシンは、直ちに最新ソフトウェアバージョンへ更新することが不可欠です。セキュリティ責任者は、AirPlayをサポートする個人所有デバイスも直ちに更新する必要があることを、従業員に明確に周知する必要があります。
エキスパートのヒント
購読して最新のセキュリティ更新情報を受け取る
モダンアプリもレガシーアプリも防御するために構築
Oligoは、K8s上に構築されたモダンクラウドアプリでも、オンプレミスでホストされる旧来のアプリでも、数分で導入できます。
翻訳元: https://www.oligo.security/blog/airborne