E.V.A Information Securityは7月1日(現地時間)、「Vulnerabilities in CocoaPods Open the Door to Supply Chain Attacks Against Thousands of iOS and MacOS Applications」において、Appleプラットフォーム向け依存関係マネージャーの「CocoaPods」から緊急の脆弱性が複数発見されたと報じた。これら脆弱性を悪用されるとパッケージの所有権を乗っ取られ、アプリケーションに悪意のあるコードを挿入される可能性がある。
CocoaPodsの問題
CocoaPodsはmacOS、iOS、watchOS、tvOSをサポートする依存関係マネージャー。SwiftおよびObjective-Cを用いたアプリ開発において外部ライブラリの管理を支援する。公式の発表によると、10万件以上のライブラリ登録があり、300万以上のアプリに利用されている。
CocoaPodsは2014年、「Trunk」Webサービスを導入し、コマンドラインから直接パッケージ(CocoaPodまたはPodと呼ばれる)を公開できるようにした。この変更に伴い既存のパッケージ所有者には、「所有権」を要求する移行作業が求められた(参考:「CocoaPods Trunk - CocoaPods Blog」)。
しかしながら、少なくとも数千のパッケージは移行作業が行われず、所有者不明のままとなった。E.V.A Information Securityの調査によると、2024年7月1日時点における放置されたパッケージは1,866件存在するという。
脆弱性の情報
発見された脆弱性の情報(CVE)は次のとおり。
- CVE-2024-38368 - パッケージの所有権を第3者が要求できる脆弱性。移行を完了していないパッケージを乗っ取られる可能性がある
- CVE-2024-38366 - CocoaPods認証サーバにOSコマンドインジェクションの脆弱性。認証されていないリモートの攻撃者にサーバ上で任意のOSコマンドを実行される可能性がある
- CVE-2024-38367 - CocoaPods認証サーバにセッション検証URL偽装の脆弱性。攻撃者はURLを差し替えた正規のアカウントリセットを要求し、ユーザー操作を介してリセットセッションを乗っ取る可能性がある
CVE-2024-38368およびCVE-2024-38366はいずれも深刻度が緊急(Critical)と評価されている。攻撃者はこれら脆弱性を悪用することで、既存パッケージの所有権を消去してアカウントを乗っ取ることができる。
CVE-2024-38367の深刻度は重要(Important)と評価されている。通常はユーザー操作を必要とするため、ワンクリックでアカウントを乗っ取る攻撃が可能とされる。しかしながらパッケージ所有者が、メールをアクティブに検証するセキュリティソリューションを導入している場合、セキュリティソリューションがリンクにアクセスしてしまうため、ゼロクリックの攻撃が可能とされる。
対策
CocoaPodsは2023年10月ごろまでに、これら脆弱性を修正している。しかしながら、修正パッチ適用までに登録されていたパッケージは、その所有権を侵害され、悪意のあるコードを挿入された可能性がある。CocoaPodsにパッケージを登録している開発者には、所有権の乗っ取りおよび悪意のあるコードが挿入されていないか検証することが推奨されている。
今回発見された脆弱性はサプライチェーン攻撃に悪用された可能性がある。CocoaPodsを利用しているすべての開発者は、自身が開発したアプリへの影響を調査することが望まれている。