2時間の監査と5行のコードで Pixel 10 を root 化 — Project Zero が公開した0-clickチェーンの技術的深層
はじめに
Google Project Zero が 2026 年 5 月、Pixel 10 をユーザー操作ゼロでカーネル権限まで奪取する0-click エクスプロイトチェーンを公開した。Hacker News では 340pts を獲得しているこのレポートが衝撃的なのは、攻撃の発見過程そのものだ。新しい脆弱性の発見にかかった監査時間はわずか 2 時間、カーネル R/W プリミティブを実現するエクスプロイトコードは 5 行で済んだ。本記事では、この2段構成のチェーンがなぜこれほど少ない労力で組み上がってしまったのかを技術的に整理し、モバイルセキュリティとドライバ実装に対する示唆を読み解く。
チェーンの全貌 — 2段ロケットで「再生待ち」状態から root へ
公開されたチェーンは古典的な「リモート初期侵入 → ローカル権限昇格(LPE)」の2段構成で、ユーザーは音声メッセージや音声添付ファイルを「受け取るだけ」で攻撃が成立する。タップも開封も不要、いわゆる 0-click である。
ステージ1で利用されたのは、Pixel 9 シリーズに対するチェーンですでに公開済みだった Dolby Unified Decoder(UDC)の脆弱性 CVE-2025-54957 だ。細工された Dolby Digital Plus(DD+)音声ストリームを受信した時点で、メディアプロセス(mediacodec SELinux コンテキスト)でのコード実行が成立する。Android 全体に存在した穴で、2026 年 1 月のセキュリティパッチで修正済みだが、Project Zero は Pixel 9 向けに開発済みだったエクスプロイトを Pixel 10 へ移植し、RET PAC(ポインタ認証)導入に合わせて dap_cpdp_init 初期化コードを上書き対象に差し替えるだけで動作させている。
問題はステージ2である。Pixel 9 で使っていた BigWave ドライバ経由の LPE は Pixel 10 に存在しなかったため、研究者は別のカーネル攻撃面を探した。/dev/vpu として mediacodec コンテキストから到達できる、Tensor G5 に積まれた WAVE677DV ビデオデコードハードウェアのドライバである。Jann Horn と共同で監査を始め、約 2 時間で致命的な欠陥を発見したと記事は述べている。
技術的背景 — remap_pfn_range を「VMA サイズだけ」で呼んだら何が起こるか
VPU ドライバの問題は、Linux カーネル開発者なら一瞬で危険性が分かる種類のものだった。ドライバの mmap ハンドラが、ユーザーから渡された VMA(仮想メモリ領域)のサイズに対して remap_pfn_range を呼び出すだけで、ハードウェアの MMIO レジスタ領域サイズで境界を切っていなかったのだ。
remap_pfn_range は指定された物理ページフレーム番号(PFN)から指定サイズぶんを、ユーザー空間にそのままマッピングするカーネル API である。本来は「このデバイスのレジスタ領域だけをマップする」用途で使う関数だが、サイズの上限を呼び出し側が自分で課さないと、ユーザーは要求するだけで好きなだけ物理メモリをマップできてしまう。Pixel ではカーネルイメージが常に固定の物理アドレスに配置されているため、攻撃者は VPU レジスタからの相対オフセットだけでカーネルへ到達できる。スキャンも探索も不要、ピンポイントで読み書きできる状態が手に入る。
Project Zero はこの一点を踏み台に、カーネル任意 R/W プリミティブをわずか 5 行のコードで構築し、エクスプロイト全体の組み立ても 1 日以内で完了させたと報告している。さらに記事の指摘で鋭いのは、このドライバが標準的な V4L2(Video4Linux2)API を経由せず、チップのハードウェアインターフェースをユーザー空間に直接露出させていた点だ。Android のメディアコーデック層に求められるサンドボックスやアクセス制御の前提が、ドライバの実装方針によって素通りされてしまった構造的な問題と言える。
このバグは 2025 年 11 月 24 日に報告され、71 日後の 2026 年 2 月の Pixel セキュリティ速報で修正された。Dolby UDC 側はすでに 2026 年 1 月で塞がれているため、両方の月次パッチを当てたデバイスは現時点で安全である。
エンジニアへの影響 — 「ドライバが境界を切る」原則と、攻撃面の選定
この事例がエンジニアに突き付ける論点は2つある。
第1に、カーネルドライバの mmap 実装は、必ずハードウェア領域サイズで境界を切るという基本原則だ。vm_iomap_memory のように上限付きのヘルパーが用意されているのにあえて remap_pfn_range を生で呼ぶ場合、サイズ検証はドライバ自身の責任になる。ハードウェアアクセラレータの追加が当たり前になった現代のモバイル SoC では、ベンダー固有ドライバが量産されるが、その多くがレビュー目を通ったコモンパスから外れている。今回の WAVE677DV のように V4L2 を回避した「カスタムキャラクタデバイス」がメディアコーデックコンテキストから触れる構成は、特に監査が薄くなりやすい。
第2に、攻撃者と防御者の双方が「攻撃面の選定」に最適化していることの再認識だ。Project Zero は商用スパイウェアが実際に使う Pixel 10 のような最新世代を意図的にターゲットに選び、ステージ1の既存エクスプロイトをパッチギャップが残るうちに再利用しつつ、ステージ2は最も監査が薄い「ベンダー固有 SoC ドライバ」に集中させた。エンジニアとして実務でセキュリティを評価する際は、「OSS で良くレビューされたコモンパス」よりも「ベンダー独自の制御パス」のほうにリスクが偏ることを前提に、CI のファジングや SELinux ポリシーの最小権限化を組み立てたい。Android アプリ側でも、メディアファイルを受け取って自動デコードする経路(メッセンジャー、メール、Discord ライクなアプリ)は、システム側のパッチ提供までの「窓」が依然として攻撃価値を持つことを意識した設計が必要になる。
まとめ
Project Zero の今回のレポートは、最新フラッグシップ機ですら「メッセージ受信だけで root」が成立し得ること、そしてその新規欠陥が 2 時間の監査と 5 行のコードで見つかってしまったという事実を、攻撃側ではなく Google 自身が公開したという点で重い意味を持つ。教訓は明快だ。Pixel 系を含む Android デバイスでは月次セキュリティパッチの即日適用が、メディア起点の 0-click を塞ぐ最後の砦になる。そしてカーネル開発側では、remap_pfn_range のような低レベル API を呼ぶ箇所のサイズ境界チェックを、コードレビューチェックリストの先頭に置くべきだ。今後は商用スパイウェア対策として、メディアデコーダのプロセス分離強化と、ベンダードライバへの体系的なファジングが業界全体の課題になっていくだろう。
今日のその他のニュース
Anthropic 製エージェントが Apple M5 の MIE を5日で突破
Apple が 5 年かけて設計した M5 チップのメモリ保護機構 MIE(Memory Integrity Enforcement) を、Anthropic のエージェント研究が AI 支援のカーネル攻撃チェーンで回避したと報告された。MIE はメモリ破壊の主要クラスを構造的に塞ぐ防御機構として鳴り物入りで導入されたものだが、AI を使った探索コストの低下が、ハードウェアレベルの緩和策の優位性にも影響し始めていることを示唆する事例である。
Bun が Zig から Rust へ完全リライト、Anthropic 主導で 100 万行を一括マージ
JavaScript ランタイム Bun が Zig 実装を捨て、Anthropic 主導のもと Claude Code でほぼ全コードを Rust にリライトし、PR としてマージされた。バイナリサイズは 3〜8MB 縮小、性能はニュートラル〜改善、テストスイートは 99.8%(Linux x64 glibc)を通過。背景には Zig の no-AI コントリビューションポリシーと、Anthropic 内製ワークフローの衝突があるとされる。
Erlang/OTP 29.0 がリリース
並行処理基盤としての再評価が進む Erlang/OTP の新メジャーがリリースされた。エージェント時代に向けて「メッセージパッシング・軽量プロセス・スーパーバイザツリー」の有効性が再認識されている中、押さえておくべきリリースノートになっている。
ソース
- A 0-click exploit chain for the Pixel 10: When a Door Closes, a Window Opens — Google Project Zero
- A 0-click exploit chain for the Pixel 9 Part 1: Decoding Dolby — Google Project Zero
- A 0-click exploit chain for the Pixel 9 Part 3: Where do we go from here? — Google Project Zero
- Google Project Zero Reveals Zero-Click Exploit Chain for Pixel 10 — cyberpress.org