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」から緊急の脆弱性が複数発見されたと報じた。これら脆弱性を悪用されるとパッケージの所有権を乗っ取られ、アプリケーションに悪意のあるコードを挿入される可能性がある。

  • Vulnerabilities in CocoaPods Open the Door to Supply Chain Attacks Against Thousands of iOS and MacOS Applications

    Vulnerabilities in CocoaPods Open the Door to Supply Chain Attacks Against Thousands of iOS and MacOS Applications

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を利用しているすべての開発者は、自身が開発したアプリへの影響を調査することが望まれている。