Google Chrome V8 JavaScript エンジンの脆弱性:RCE の可能性と PoC 公開

Google Chrome RCE Vulnerability Details Released Along with Exploit Code

2025/10/06 CyberSecurityNews — Google Chrome の V8 JavaScript engine に存在する、深刻なリモート・コード実行 (RCE) 脆弱性に関する技術的詳細と PoC エクスプロイト・コードを、研究者たちが公開した。この脆弱性は、WebAssembly の型正規化プロセスに存在し、 Chrome M135 以降のコミット 44171ac で混入した、CanonicalEqualityEqualValueType 関数における不適切な null 許容 (nullable) のチェックに起因する。

この脆弱性は、ref t0 と ref null t0 を区別できないため、この欠陥を突く攻撃者は、同一の MurmurHash64A ハッシュ値で衝突する2つの再帰的型グループを作成できる。この構造の不一致を悪用した、型正規化に対するバースデー攻撃を仕掛けることで、このエクスプロイトはインデックス付き参照型における null 許容 (nullable) の混同を引き起こし、Wasm のコアとなる型の安全性の保証を損なうことになる。

このエクスプロイトで採用されたのは、M137 で導入された JavaScript Promise Integration (JSPI) の状態切り替えにおける欠陥を悪用する、新たな V8 サンドボックス・バイパス手法である。

SSD Secure Disclosure によると、セカンダリ・スタック管理ロジック内の状態の不整合を悪用する攻撃者は、ネストされた JS スタックと Wasm スタック間で、順序を無視した実行の切り替えを行う。

この手法は、非アクティブなスタックをスキップし、攻撃者が制御する値を中断されたフレームにスプレーすることで、スタックを完全に制御するものだ。さらに攻撃者は、RWX シェルコード・バッファ上で VirtualProtect を呼び出すための ROP チェーンを構築する。

Chrome RCE 脆弱性エクスプロイト

公開された PoC エクスプロイト・コードは、HTML ペイロードと “wasm-module-builder.js” を用いることで、カスタムの Wasm 型と関数を生成する付随の JavaScript で構成される。エクスプロイトを展開する手順は、以下のとおりである。

Google Chrome RCE Vulnerability

続いて、”http://127.0.0.1:8000/exp.html” にアクセスする。この攻撃が成功すると、細工した ROP チェーンと RWX シェルコードを介して Windows の “calc.exe” が起動し、エクスプロイト・スクリプトにより以下の手順が実行される。

まず、null 化の可能/不可能のみが異なる、2つの Wasm 再帰型グループ (t2null/t2nonnull) を列挙し、2^32 個の MurmurHash64A 値に対するバースデー攻撃を行い、衝突箇所を特定する。

次に、ref null t1 を ref t1 にキャストし、大規模な ArrayBuffer への範囲外アクセスを悪用することで、サンドボックス化された制限付き Read/Write プリミティブを獲得する。

さらに、ネストされた Promise ベースの Wasm エクスポートを構築して、スタック切り替えを強制し、コミット c6426203 で欠落している SBX_CHECK を悪用する。それにより、非アクティブなスタックフレームがスキップされ、攻撃者が制御する実行コンテキストが生成される。

最後に、ガジェット・アドレス (pop rax/jmp rax/VirtualProtect スラントオフセットなど) による retsled 配列をスプレーし、シェルコード・メモリを実行可能にマークして、そこへジャンプする。

この発見とエクスプロイトの功績は、TyphoonPWN 2025 の Chrome RCE 部門優勝者である Seunghyun Lee (0x10n) に帰属する。この報告を受け、null 許容 (nullable) の回帰に対処する一方で、JSPI に厳密な SBX_CHECK を再導入して V8 エンジンの型安全性を回復するパッチがコミットされた。

この重大な RCE リスクを軽減するために、ユーザーに対して強く推奨されるのは、 Chrome M137.0.7151.57 (またはそれ以降) へと、可能な限り早急にアップデートすることだ。