Pixel 10 用の 0 クリック攻撃連鎖

2026/05/15 22:39

Pixel 10 用の 0 クリック攻撃連鎖

RSS: https://news.ycombinator.com/rss

要約

日本語翻訳:

グーグルの Pixel 10 に新たに発見された脆弱性については、その Tensor G5 チップおよび VPU ドライバー(

/dev/vpu
)を対象としており、パッチ未適用の端末上で SPL が 2025 年 12 月以前のものである場合、ゼロクリックでのルート権限獲得型攻撃を可能にします。悪意あるコードわずか 5 行によって任意のカーネル関数を上書きすることで、この攻撃はドライバーが物理メモリーを直接マッピングするという仕組みを活用し、適切な V4L2 統合を行わずにハードウェアインターフェースを暴露することにより、標準的な保護策を回避しています。この特定の脆弱性は、2025 年 11 月 24 日に報告されてから 91 日以内にパッチ済み(修正は 2 アンドロイドセキュリティブリーフィングにて公開)であり、Android ドライバー関連の脆弱性に対する対応速度が大幅に向上した珍しい事例を示していますが、底流となるハードウェア開発の実践が不安全である限り、効率的なパッチであっても長期的な安全性を確実にすることはできません。BigWave などの以前の発見事項を踏まえ、本件の業界全体への警告は、深刻な脆弱性が消費者へ届く前にユーザーのプライバシーおよび端末の完全性を侵害することを防ぐには、積極的なコード監査と堅牢なセキュリティを意識した開発が不可欠であるというものです。

本文

我々 Google Project Zero は近日、Google Pixel 9 に存在するexploitチェーンを公開しました。このチェーンにより、ゼロクリックコンテキストから2段階のexploitでAndroidデバイスをroot権限へ至ることが可能であることを示しました。Dolby社のゼロクリック脆弱性(CVE-2025-54957)は、2026 年 1 月のパッチ適用まで全ての Android デバイスに存在していました。Pixel 9 向けにすでに exploitチェーンを有していたため、同様のチェーンを Pixel 10 向けにも記述できるか検証を行いました。

Dolby Exploit の更新

CVE-2025-54957 に対する exploit を改良する作業は比較的単純でした。必要な変更の大部分は、Pixel 9 上で標的としたライブラリの特定バージョンに対して計算されたオフセットを、Pixel 10 のライブラリにおける同等のオフセットに更新することで構成されていました。主な課題(同期フレームにオフセットが含まれているかに関するドキュメントが不足していたことを後知りました)は、Pixel 10 が

-fstack-protector
に代わって RET PAC を採用している点にあります。これにより
__stack_chk_fail
はコードによって上書き利用することが不可能となりました。数回の試行錯誤を経て、デコーダーが初期化される際に一度呼び出され thereafter 二度とは呼ばれないため機能上の問題を引き起こさない
dap_cpdp_init
(初期化コード)を上書きして利用する方針を取りました。

更新後の Dolby UDC exploit は以下の場所から入手可能です。この exploit は未パッチデバイス(SPL が 2025 年 12 月以前のもの)のみで動作します。

BigWave の撤廃と VPU の導入

チェーン内のローカル特権昇格リンクを Pixel 10 へ移植することは不可能でした。これは、BigWave ドライバがこのデバイスには供給されていないためです。一方で、

/dev/vpu
というパスにある mediacodec SELinux コンテキストにおいて新しいドライバが検出されました。このドライバは、Tensor G5 チップ上の Chips&Media Wave677DV シリコンと対話するために使用され、ビデオデコーディングの加速を担うものです。オープンソース C ファイル内のコメントから判断すると、この VPU ドライバの開発・維持は BigWave ドライバを開発した開発者チームが行っていることが確認されました。Jann Horn 氏との連携の下で、この VPU ドライバの監査に 2 時間費やし、画期的な脆弱性を発見しました。

upstream の Linux WAVE521C(旧型 Chips&Media チップ)用ドライバとは異なり、Pixel 向けの WAVE677DV ドライバは V4L2(「Linux を 위한ビデオ API」)との統合を行っておらず、チップのハードウェアインタフェースをユーザスペースに直接公開しています。これにより、ユーザスペースから MMIO レジスタインタフェースにマッピングを行うことが可能になっています。ドライバの主たる役割はデバイスメモリモジュールの設定、電力管理の実行、およびユーザスペースがチップからの割り込み待ちをする許可などです。

static int vpu_mmap(struct file *fp, struct vm_area_struct *vm)
{
    unsigned long pfn;
    struct vpu_core *core =
        container_of(fp->f_inode->i_cdev, struct vpu_core, cdev);

    vm_flags_set(vm, VM_IO | VM_DONTEXPAND | VM_DONTDUMP);
    /* これは CSRs のマッピングなので pgprot_device を使用 */
    vm->vm_page_prot = pgprot_device(vm->vm_page_prot);
    pfn = core->paddr >> PAGE_SHIFT;

    return remap_pfn_range(vm, vm->vm_start, pfn, vm->vm_end - vm->vm_start, vm->vm_page_prot) ? -EAGAIN : 0;
}

上記の

mmap
ハンドラは、VPU ハードウェアの MMIO レジスタ領域をユーザランド仮想アドレス空間へとマッピングするためのものであり、これは特定の物理メモリアドレス範囲内に含まれる領域です。この際、VMA のサイズに基づいて
remap_pfn_range
を呼び出し、レジスタ領域のサイズに縛られることなく実装されています。すなわち、
mmap
システムコールでレジスタ領域より大きいサイズを指定することで、呼出側は VPU レジスタ領域の物理アドレスから開始して希望するだけの実メモリー領域をユーザランドへとマッピングできます。カーネルイメージ全体(
.text
および
.data
領域を含む)の物理アドレスは VPU レジスタ領域よりも高い位置に設定されており、したがってこのバグを利用してユーザスペースからアクセス・変更が可能となります。

この時点で、カーネル関数の上書きによりカーネルコードの実行を入手したり、あるいはあらゆる基礎的なプリミティブ操作を実行することも可能になります。さらに、Pixel においてカーネルは常に同一の物理アドレスに配置されるため、VPU メモリ領域とカーネル間のオフセットは常に既知の値となります。そのため、マッピングされた物理メモリ内でカーネルを検索する必要さえなく、

mmap
が返すアドレスに対する相対位置として正確なカーネルの所在が分かっており(VMA の長さを十分大きく設定すれば)、なおさら容易です。

この脆弱性によりカーネルに対する任意の読書きを実現するには 5 行のコードだけで sufficedし、完全な exploit を記述するためには 1 日以下の労力しか要していませんでした。

パッチプロセス

私は当該バグを 2025 年 11 月 24 日に報告し、Android VRP はこれを「High severity」と評価しました。これは、以前 Pixel 9 の特権昇格に利用した BigWave バグ(同等のセキュリティ影響を持ちながら当初は「Moderate severity」と評価されていた)と比較して明確な改善であり、これらのタイプの脆弱性に対する_triage_およびパッチ適用プロセスにおける姿勢の有意義かつ前向きな転換を示しています。当該脆弱性は報告から 71 日後、すなわち同社がこの脆弱性を最初に察知してから 90 日以内にパッチされ、2026 年 2 月の Pixel セキュリティブリンレットに組み込まれました。これは、私が報告した Android ドライバの脆弱性が Vendor の知識入手から初めて 90 日以内のパッチ化を受けた初例であることを踏まえると、特に迅速な対応であったと言えます。

結論

今回の研究からは肯定的にも否定的にも多くの教訓を引き出せます。Project Zero の主要な目標は、単なる個別のバグ修正を超えた体系的改善を推進し、開発プロセスの向上とより強固なコード基盤を促進することでエンドユーザーのセキュリティを高めることにあります。この VPU 脆弱性の対応は、Android の_triage_パイプラインにおける明確な進歩を示しており、前回の BigWave バグよりも短期間で是正措置が講じられた点からその有効性が窺えます。Android が重大な脆弱性を効率的にパッチ化することで多くの Android デバイスを保護しようとする努力は広く評価されるべきです。

一方、今回の事例は Android ドライバにおいて、より徹底的かつセキュリティ意識の高いコードの実装が引き続き必要であることを強調しています。BigWave のバグを報告した際には、開発者が他のドライバにも明らかなセキュリティ問題を評価するよう呼びかけていましたが、5 ヶ月後の現在でも、VPU ドライバにおいて極めて浅薄な重大脆弱性を発見しており、コードベースの表面的な監査ですぐに顕在化しました。ドライバのセキュリティ強化は、安全な Android エコシステムを確保するための重要な優先事項であり、今後も Vendor に対して予防的な取り組みを通じて此类の脆弱性がエンドユーザーに届くことを未然に防ぐようソフトウェア開発プラクティスの改善を強く奨励してまいります。

セキュリティレポートはしばしば製品チームが見落とした複雑な問題を浮き彫りにしますが、特に安全性に直結する製品においては、ソフトウェアベンダが必要となる措置を講じて脆弱性の少ない状態でのリリースを確保し、ソフトウェアチームがプロアクティブにソフトウェアセキュリティ、コード監査、脆弱性のパッチ化に取り組むことが極めて重要であります。

同じ日のほかのニュース

一覧に戻る →

2026/05/16 1:15

プロジェクト・グテンベルク:良くなるばかりです

## Japanese Translation: Project Gutenberg は 1971 年に設立された先駆的な非営利図書館で、市民向けに 75,000 冊を超える無料の電子書籍を提供しています。その核心的な使命は、米国での著作権が失効した著作物のデジタル版を提供することで歴史を保存することであり、これらの文本は公開前に何千人ものボランティアによって細心の注意をもって校正されています。アーカイブへのアクセスには登録費用や専門ソフトウェアは一切不要であり、ユーザーは Web ブラウザですぐに閲覧でき、epub や Kindle などの一般的な形式でコンテンツをダウンロードできます。メインサイトでは公共の領有権にある古典作品に焦点を当てていますが、self.gutenberg.org という独立したセクションでは World Library Foundation から提供される自己出版タイトルがホストされています。サイトはさらにボランティアによって手が選別された読書リストも提供しています。研究者や企業向けには、著者、タイトル、主題、言語、タイプ、人気度でフィルタリングや検索ができる堅牢な機能があり、アクセスが可能です。Project Gutenberg は新刊のデジタル化を継続するために寄付を受け入れており、この支援がない場合、コレクションの拡大は不可能になります。入るための障壁なく、すべての人々のために知識を民主化する 100% フリーのリソースとして 50 年以上運営されてきたことです—from カジュアルな読者から産業用途まで—。そのリーダーシップに関するリソース、例えば元 CEO で亡くなられた Greg Newby 博士については、サイト上に利用可能です。

2026/05/16 4:23

WinCE64 - N64용 Windows CE 2.11

## Japanese Translation: このテキストは、EverDrive-64 X7 リーダーを実際の Nintendo 64 ハードウェアに Microsoft Windows CE 2.11 を成功裏に移植したという重要な技術的達成を文書化しています。エミュレーションとは異なり、この構成は Microsoft のコア `nk.lib` ライブラリを変更することなく、完全なデスクトップ機能—including ウィンドウ管理、N64 AI ハードウェアを用いたオーディオ出力、サードパーティ製 EXEの実行—を提供します。プロジェクトでは、元の CE 2.11 SDK にこれらの要素が含まれていなかったため、外部資源(例:libdragon ライブラリ)を用いてデスクトップシェル(Explorer、タスクバーなど)全体を从头再構築する必要がありました。主要な技術的作業には、RDP アクセラレーション付きの VI フレームバッファ用のカスタムドライバ、Joybus 経由での N64 コントローラ入力デコーディング、インタラプトマスク問題を解決するためのポーリングモードオーディオ処理が含まれます。公式エミュレーションは深いパッチが必要であるため未対応ですが、この概念実証(PoC)により、独自ドライバの実装を通じてレガシーソフトウェアをヴィンテージハードウェア上で動作させる方法が示されました。ただし、プロジェクトソースコードが MIT ライセンス下にあるにもかかわらず、結果生成されたバイナリは制限的な Microsoft SDK ライセンシングのために再配布できません。

2026/05/16 3:37

ツリプル財団。

## Japanese Translation: 2026年5月15日、Zulipの創設者であるTim Abbottはフルタイムでのリーダー職を退き、Anthropicへの参画を果たします。この際、Alya Abbott、Greg Price、Alex Vandiverを含む3名のシニアチームメンバーも一同に立ち寄り、Kandra Labsは新たに設立された独立した非営利法人「Zulip Foundation」へ寄附され、プロジェクトは私的所有から Mozilla や Signal に準じた公共的利益に基づくガバナンスモデルへと移行します。同財団はプロジェクトを管理し、公共団体を中心に活動しつつ、助成金および税金控除可能な寄付を通じて持続可能な資金調達を実現し、投資家による支配を防ぎます。最初の理事会には、創設者である Tim Abbott、共同創設者の Greg Price、製品担当の Alya Abbott、Rust リーダーの Josh Triplett が選任されます。拡大された諮問委員会では、Andrew Sutherland(MIT)、Nick Bergson-Shilcock などの専門家も参加します。運用はすべて継続:Zulip Cloud、モバイルプッシュ通知、サポート契約、Google Summer of Code、オープンソースのスポンサーシップなどがそのまま活性しています。Kim Vandiver が副理事長として加わり、安定期の確保を図ります。開発ペースは次四半期に若干低下しバグ除去を優先する可能性がありますが、12名の平均4年以上の在籍期間を持つ経験豊富な維持管理チームおよび約25,000コミットのコード履歴が、プラットフォームのレジリエンスを支えています。Tim Abbott は時間の許す限りコンテキストと助言を提供し続けています。変更に関する詳細については、5月19日午後4時(UTC)にライブチャットで Q&A を開催しコミュニティと議論を行います。本移行は、オープンソースの価値観とコミュニティによる統御下での長期的持続可能性を最優先とするものです。

Pixel 10 用の 0 クリック攻撃連鎖 | そっか~ニュース