iOS カーネルの脆弱性 CVE-2025-24203 の PoC 公開:システムをカスタマイズ without ジェイルブレイク

PoC Released: iOS Kernel Flaw Allows File System Modification Without Jailbreak

2025/05/19 SecurityOnline — すでにパッチ適用されたカーネルの脆弱性 CVE-2025-24203 が、Apple エコシステム内のセキュリティ・コミュニティおよびジェイルブレイク・コミュニティで、大きな注目を集めている。この脆弱性は、“dirtyZero“ および “mdc0“ と命名されており、ファイル・システムの保護領域の改変を、アプリに対して許してしまうものだ。したがって、この脆弱性の悪用に成功した攻撃者は、ジェイルブレイクを必要とせずに、システム・カスタマイズの可能性を手にする。

この脆弱性は、Google Project Zero の著名な研究者 Ian Beer により発見/公開されたものであり、iOS/iPadOS のバージョン16.0–16.7.10/17.0–17.7.5/18.0–18.3.2 に重大な影響を及ぼす。

iPadOS 17.7.6 のセキュリティ・アップデートには、「ファイル・システムの保護された部分への、アプリによる改変を許す可能性のある脆弱性に対して、チェックの強化で対応した」と記載されている。

iOS kernel vulnerability dirtyZero exploit
Image: GeoSn0w

この脆弱性は、Apple のメモリ管理システム内で、あまり注目されてこなかったフラグ ”VM_BEHAVIOR_ZERO_WIRED_PAGES” の動作に起因する。Beer は、「このフラグは、任意の vm_entry に対して、権限チェックなくタスクを設定できる。それにより、entry->zero_wired_pages が設定される」と説明している。

この問題を悪用するアプリは、システム・ファイルをバックアップするメモリのページを、ゼロ化できるようになる。それは、システムのカスタマイズを試みる、攻撃者や開発者にとって、きわめて強力な手段となる。

Ian Beer の技術的レポートの要点:

  • 複数の段階で権限チェックが存在しない。
  • root 所有の読み取り専用ファイルからのページであっても、ゼロ化が可能である。
  • 一般ユーザーがアクセス可能なシステム・コール mlock ()  を用いることで、root 権限やホスト権限が不要になる。
  • この脆弱性の悪用により、vnode pager ファイルからマッピングされたメモリ領域、つまり UBC (Unified Buffer Cache) ページを標的にできる。

PoC (Proof of Concept) がテストされた環境:

  • macOS 15.2 (24C101)
  • MacBook Pro 13-inch 2019 (Intel)

すでに、この脆弱性は、以下のバージョンで修正されている:

  • iPadOS/iOS 17.7.6
  • iPadOS/iOS 18.4

それ以前のバージョンを使用している端末は、依然として影響を受ける可能性がある。

ジェイルブレイクを必要としない、この手法は、先行する “MacDirtyCow” エクスプロイトに続き、UI の変更やシステム挙動の調整などを行うカスタマイズ・ツールに利用され始めている。

ただし、一部の愛好家にとっては便利な一方で、アクセスが容易で、権限チェックがないため、悪意のアプリによる不正利用につながるリスクも否めない。