Apple iOS の脆弱性 CVE-2024-44258:PoC エクスプロイトが公開

PoC Exploit Releases for Critical Symlink Flaw in Apple’s iOS – CVE-2024-44258

2024/11/05 SecurityOnline — Apple の ManagedConfiguration フレームワークとプロファイルされたデーモンに影響を与える、シンボリック・リンクの脆弱性 CVE-2024-44258 について、サイバーセキュリティ研究者の Hichem Maloufi と Christian Mina による詳細な分析が公開された。この脆弱性の悪用に成功した攻撃者は、バックアップ復元プロセスを操作して制限された領域にアクセスし、機密性の高いシステム・ファイルを漏えいさせる可能性がある。

特定の iOS バージョンを実行している Apple デバイスで発見された、脆弱性 CVE-2024-44258 は、バックアップ復元時のシンボリック・リンクの処理の欠陥に起因する。細工されたバックアップを復元する際に、移行処理ではディスティネーション・フォルダがシンボリック・リンクであるかどうかを確認できないため、保護された場所へとファイルがリダイレクトされる可能性がある。Maloufi は、「移行処理ではディスティネーション・フォルダがシンボリック・リンクであるかどうかを検証できない」と説明している、この欠陥により、通常は保護されているシステム・ファイルが変更される可能性が生じる。

この脆弱性により、攻撃者は許可されていないファイルの移行が可能となり、バックアップ・ファイル内のシンボリック・リンクを利用することで、サンドボックス制限の回避が可能になる。したがって、許可されていないデータ・アクセス/特権の昇格/サービスの悪用も、影響を受けるデバイスのコンフィグに依存することになる。Maloufi によると、「この欠陥により、許可されていないデータアクセス/特権の昇格/変更されたコンフィグに依存する、他のサービスの悪用が可能になる」という。

この脆弱性は数ヶ月前から実環境で確認されており、攻撃者が積極的に悪用していると報告されている。しかし、Apple のセキュリティ情報は、この脆弱性の実際の悪用について明らかにしていない。

Maloufi と Mina の研究は、このシンボリック・リンクの脆弱性を悪用する、細工されたバックアップの作成を実証する詳細な PoC エクスプロイトを提供している。研究者は、細工されたシンボリック・リンクを使用するかたちで、Apple の保護されたディレクトリにファイルを挿入する方法について、「機密データや保護されたデータを含む制限付きフォルダにファイルが移行される」と説明している。

以下は、脆弱性を悪用するためのバックアップの作成手順を示す、サンプルコードの抜粋である。このコードでは、実際の細工したバックアップ・ファイルを取り込むことなく、バックアップにシンボリック・リンクとファイルを追加し、悪用する手順をシミュレートする方法が示されている。

unsigned char* plist_data = NULL;
        file_read("/path/to/your/test-outofsandbox.plist", &plist_data, &plist_size); // THIS NEED TO BE CHANGED TO THE FILE PATH

    backup_add_directory(backup, "HomeDomain", "Library/ConfigurationProfiles", 0755, 501, 501);
    backup_add_file_with_data(backup, "HomeDomain", "Library/ConfigurationProfiles/test.plist", 0755, 501, 501, 4, plist_data, plist_size); // WE ADD OUR FILES
         
    backup_add_directory(backup, "SysSharedContainerDomain-systemgroup.com.apple.configurationprofiles", NULL, 0755, 501, 501);
    backup_add_symlink(backup, "SysSharedContainerDomain-systemgroup.com.apple.configurationprofiles", "Library", "/private/var/mobile/Library", 501, 501); // CHANGE THE PATH TO THE SANDBOXED FOLDER YOU WANT TO WRITE IN YOUR FILES
    
    backup_write_mbdb(backup); // SAVE THE BACKUP
    backup_free(backup);

この脆弱性を緩和するために、Apple の iOS 18.1 beta5 では、”_MCDestinationPathIsSafeFromSymlinkAttacks” という関数が導入された。この関数は、不正なファイル移行を防止するために、ディスティネーション・パスに対して安全確認を行うものだ。この機能は、”MCMigrator_copyAlmostAtomicallyItemAtPath:toPath:error:” 関数に組み込まれており、移行先のパスの安全性を確認することでリスクに対処している。