
CVE-2025-24104の技術的な解説:バックアップ復元におけるシンボリックリンク検証のバイパスを介したiOSサンドボックスエスケープであり、サンドボックス外での任意のファイル読み取りを可能にします。
私は Apple が後に CVE-2025-24104 として追跡したバグを報告しました。当初の報告では、悪意のあるバックアップを使用してサンドボックス制限をバイパスする方法を示しました。しかし、Apple の最初の説明では、この脆弱性は保護されたシステムファイルの改変につながる可能性があると述べられていました。ここで正しい情報を提供します。このバグは実際には、攻撃者がサンドボックスの外部にある任意のファイルを読み取ることを可能にします。
この問題を詳しく調べたところ、脆弱性はバックアップ復元プロセス中の適切なシンボリックリンク検証の欠如に起因することがわかりました。具体的には、バックアップ内のファイル
/private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles/Library/ConfigurationProfiles/CloudConfigurationDetails.plist
をシンボリックリンクに置き換えて作成すると、システムは選択したファイル(サンドボックス外にある場合でも)を読み取ってしまうのです。
問題点:
mc_mobile_tunnel ロックダウンサービスは、CloudConfigurationDetails.plist がシンボリックリンクかどうかをチェックしません。もしシンボリックリンクであった場合、サービスはリンクをたどり、攻撃者は制限された任意のファイルの内容を取得できるようになります。
再現手順:
CloudConfigurationDetails.plist が任意の制限ファイルを指すシンボリックリンクであるバックアップを作成しました。com.apple.mobile.MCInstall サービスに GetCloudConfiguration コマンドを送信しました。期待されるファイル内容の代わりに、シンボリックリンクが指しているファイルの内容が返されました。サンドボックス外の任意のファイルを読み取る能力は深刻な問題です。これは、保護されるべき機密システムデータが攻撃者に露出される可能性を意味します。これは単なる小さなバグではなく、バックアップの処理方法における根本的なセキュリティ上の欠陥です。
これを修正するには、バックアップ復元プロセスでより厳格なチェックが必要です。
CloudConfigurationDetails.plist のようなファイルを読み取る前に、サービスはそれが通常のファイルであり、シンボリックリンクではないことを確認すべきです。シンボリックリンクであった場合、復元は拒否するか、安全に処理する必要があります。iOS 18.3 のリリースにより、Apple は ManagedConfiguration フレームワークに ConfigurationProfiles フォルダ内のシンボリックリンクを削除する追加チェックを導入しました。具体的には:
MCRemoveFileIfSymlink という新しい関数が追加されました。MCFixHostileSymlinks によって呼び出されます。ConfigurationProfiles フォルダ内のファイルがシンボリックリンクと識別されると、即座に削除されます。bindiff の詳細はこちらで確認できます:
https://github.com/blacktop/ipsw-diffs/blob/main/18_2_22C152__vs_18_3_22D5034e/DYLIBS/ManagedConfiguration.md
以下は、新しいチェックが追加された場所を示す私自身の diff のスクリーンショットです:

この新しい緩和策は問題を100%修正するわけではないことは言及する価値があります。私が推奨した修正が Apple によって実装されなかったため、すでにそれを回避する方法を見つけていますが、その詳細は非公開のままにします。
以上が CVE-2025-24104 に関する私の個人的な説明であり、Apple の当初の説明が的を外していたことを強調しています。真のリスクはシステムファイルの改変ではなく、サンドボックス外のファイルの不正な読み取りです。
脆弱性を発見したのは Hichem Maloufi (ifpdz)