Experts Reveal Details and PoC on Chrome CVE-2024-0517 RCE Flaw
2024/01/21 SecurityOnline — 先日にパッチが適用された Google Chrome のセキュリティ脆弱性 CVE-2024-0517 に関する、技術的な詳細と PoC が公開された。この脆弱性 CVE-2024-0517 は、Chrome の JavaScript エンジンである V8 の境界外書き込みの欠陥に起因するものであり、Qrious Secure のセキュリティ研究者 Toan (suto) Pham に発見された後の 2024年1月に、Google によりパッチが適用されている。
この脆弱性の悪用に成功した攻撃者は、特別に細工した Web サイトを被害者に閲覧させることで、システム上での任意のコード実行を可能にする。この脆弱性は、V8 の Maglev コンパイラ内の微妙なバグに、特に、親クラスを含むクラスのコンパイル処理に起因するという。
この脆弱性の発生源は、親クラスが関与する場合に、クラス作成を最適化するように設計された、”VisitFindNonDefaultConstructorOrConstructMaglev” 関数にある。この脆弱性は、コンストラクタにとって極めて重要な、JavaScript のメタプロパティである “new.target” 参照を持つクラスをコンパイルする際に誘発される。具体的には、”Reflect.construct の誤用により、”new.target” として “ClassParent” を持つ “ClassBug” がターゲットとなり、この脆弱性の発生へと至るという。
CVE-2024-0517 を悪用する攻撃者は、Chrome の内部構造を熟知していることが前提となるだろう。FoldedAllocation になるようも、アロケーションを指示する脆弱性をトリガーすることから始まり、綿密にタイミングを合わせたガベージ・コレクションのサイクルが続く。この準備段階は、隣接する配列マップの上書きを可能にするような方法で、V8 ヒープ内にオブジェクトを配置するための非常に重要なものとされる。
そこから、破損した配列オブジェクトを特定して、読み取りと書き込みのプリミティブを作成する段階へと進む。2つの WebAssembly (wasm) インスタンスを導入するが、1つは任意の書き込みのためのシェルコードを保持し、もう1つは最終的なペイロードを実行する機能を整えている。
脆弱性 CVE-2024-0517 の深刻さは、Exodus Intelligence の研究者 Javier Jimenez と Vignesh Rao が公開した、Chrome for Linux 120.0.6099.71 上でエクスプロイトが実行されるデモ動画で、さらに強調されている。CVE-2024-0517 の PoC は、この脆弱性の現実世界への影響を浮き彫りにしている。
この脆弱性の発見を受けた Google は、迅速にパッチを当て、Chrome ユーザーに対して、指定された以下のバージョンにアップグレードするよう呼びかけている。
- Windows:120.0.6099.224/225
- macOS:120.0.6099.234
- Linux:120.0.6099.224
脆弱性 CVE-2024-0517 は、クラスの生成に関連する欠陥に起因するものとのことです。したがって、攻撃者が Chrome の内部構造を熟知していることが前提になりますが、PoC が出ているので安心は禁物です。なお、この脆弱性は Cromium 由来のものであり、Microsoft もアドバイザリを提供していました。よろしければ、Chrome で検索も、ご利用ください。



You must be logged in to post a comment.