Linux Kernel の脆弱性 CVE-2025-38236 が FIX:Chrome サンドボックスからの攻撃経路を遮断

Critical Linux Kernel Vulnerability Allows Attackers Gain Full Kernel-Level Control From Chrome Sandbox

2025/08/09 gbhackers — Linux Kernel に存在する深刻なセキュリティ脆弱性 CVE-2025-38236 が、Google Project Zero の研究員 Jann Horn により発見された。この脆弱性は、Chrome レンダラー・サンドボックス内でのネイティブ・コード実行から、Linux システムのカーネル・レベルの完全制御に至る複数の経路を、攻撃者に提供するものだ。この脆弱性は、UNIX ドメイン・ソケットにおける、知る人の少ない MSG_OOB 機能に関連し、Linux カーネル・バージョン 6.9 以降に影響を及ぼすものだ。この脆弱性が警告するのは、ブラウザ・サンドボックスのセキュリティと、難解なカーネル機能のリスクである。

MSG_OOB のバグがカーネル・エクスプロイトへの扉を開く

MSG_OOB のバグは、2021年の時点で Linux 5.15 に導入されたマイナーな機能に起因する。主として、ニッチな Oracle アプリケーションで使用され、UNIX ドメイン・ソケットをサポートするカーネルにおいてはデフォルトで有効化されていた。しかし、フィルタリングされていないシステム・コール・フラグであるため、Chrome の Linux レンダラー・サンドボックス内で、意図しないアクセスが可能になっていた。

このバグは、解放後メモリ使用 (UAF) の状態を引き起こす。Jann Horn が実証したのは、単純な一連のソケット操作で、この問題を悪用できることである。それにより攻撃者は、カーネル・メモリの操作を達成し、権限昇格の可能性を手にする。このエクスプロイトは、Google Project Zero のバグ・トラッカーで詳細に説明されており、x86-64 アーキテクチャで動作する Debian Trixie システムを対象とした、高度な攻撃が実証されている。

この UAF により誘発される、読み取りプリミティブを用いることで、攻撃者はコピー制限を回避し、任意のカーネル・メモリをユーザー空間にコピーできる。この手法では、ページテーブル操作や mprotect() to (OCB) ポインタが用いられ、パイプ・ページまたはカーネル・スタックとして、解放されたメモリが再割り当てされる。ただし、このポインタは未定義の状態であるため、その後の “recv(…, MSG_OOB)” 呼び出しでのアクセス時に UAF が発生する。

このエクスプロイトの成功は、Debian の CONFIG_RANDOMIZE_KSTACK_OFFSET 機能に依存している。この機能は、システム・コールごとに、スタックのオフセットをランダム化するものである。Jann Horn は、読み取りプリミティブを用いてスタック・アラインメントを検出し、再現性のあるメモリ破損を可能にした。

現状では、Linux カーネルにパッチが適用され、Chrome も MSG_OOB メッセージをブロックするよう、サンド・ボックスをアップデートしたことで、この攻撃ベクターは遮断されている。

明らかになったサンドボックスの弱点とファジング・ツールの限界

2024年8月に Google の syzkaller ファジング・ツールで検出されたバグは、6つのシステムコールを必要とするものだった。その一方で、Jann Horn が発見した複雑な問題では、8つのシステムコールが必要とされる。それが示すのは、ソケット・バッファ (SKB) のような複雑なカーネル・データ構造を、ファジング・ツールでナビゲートすることの難しさである。Jann Horn が注力するのは、特定のカーネル・サブシステムに焦点を当て、ファジングを強化することである。

また、Chrome の Linux レンダラー・サンドボックスが、不要なインターフェイスである、匿名の VMA/UNIX ソケット/パイプ/sendmsg() や mprotect() システム・コールなどを公開してリスクを高めていることも、このエクスプロイトにより明らかになった。

これまでの、futex()/memfd_create()/pipe2() などの脆弱性が示したのは、目立たないカーネル機能の公開が、意図せぬ脆弱性を生むことである。

また、Jann Horn が指摘するのは、任意の読み取り権限を持つ攻撃者にとって、スタック・ランダム化のような確率的な緩和策の回避が可能であることだ。つまり、mprotect() を利用して copy_from_user() 操作を遅延させることで、userfaultfd の制限を回避できるため、完全な軽減策にはならない可能性があると、彼は示唆している。

この脆弱性が明らかにしたのは、より厳格なサンドボックス制限と、権限のないプロセスに対して公開されるカーネル機能の再評価の必要性である。今後のレポートにおいて Jann Horn は、Chrome の Linux レンダラー・サンドボックスに関する、詳細な分析を行う予定とのことだ。現時点において、Linux ユーザーにとって必要なことは、最新のカーネル・パッチの適用である。開発者に対しては、コアシステム・インターフェイスに含まれる、難解なカーネル機能の精査が推奨される。