Chrome V8エンジンのSentinel Value漏洩のセキュリティリスクと利用分析

robot
概要作成中

Chrome V8エンジンにおけるSentinel Valueの漏洩によるセキュリティリスクの探求

Sentinel valueはアルゴリズムで特別なマークとして使用される値であり、通常はループや再帰の終了条件として用いられます。Chrome V8エンジンのソースコードには複数のSentinel valueが存在し、その中にはJavaScript環境に漏洩すべきでないものがあります。本記事では、Uninitialized Oddballオブジェクトを漏洩させてChrome V8 HardenProtectメカニズムを回避する方法について議論します。

V8のセンチネル値

V8ソースコードのroots.hファイルには、多くのネイティブオブジェクトが定義されており、これらはメモリ内で隣接して配置されています。これらのオブジェクトがJavaScriptに漏洩すると、サンドボックスのエスケープが発生する可能性があります。

私たちは、V8のネイティブ関数を変更することでこれを検証できます。たとえば、%TheHole()関数のオフセットを変更して、TheHoleオブジェクトではなく、Uninitialized Oddballオブジェクトを返すようにします。

! 独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value

HardenType保護のバイパス

Uninitialized Oddballオブジェクトを利用することで、比較的任意のメモリ読み取りを実現できます。重要な点は、最適化されたJavaScriptのread関数では、オブジェクトのprop属性が正しいかどうかのみがチェックされ、obj.propをキーとする値はチェックされていないことです。これにより、計算過程で型の混乱が発生し、任意の読み取りが実現しました。

最適化されたアセンブリコードを分析すると、uninitialized_oddballが渡されたとき、プログラムは直接オフセットを計算してデータを読み取ることがわかりますが、型チェックは行われません。この方法はTheHoleオブジェクトと比べて構築と利用が容易です。

! 独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value

! 独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value

! 独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value

! 独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value

! 独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value

提案された修正案は、最適化された関数が配列要素を返す際に、配列のマップをチェックすることを追加し、オフセット計算を通じて配列値を直接返すのを避けることです。

! 独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value

PatchGapセキュリティ警告

既知の歴史的な脆弱性に注目するだけでなく、私たちはベンダーが基盤コンポーネントで静かに修正した問題にも注意を払う必要があります。分析の結果、Skypeソフトウェアは未だにその脆弱性を修正していないことがわかりました。x86プラットフォームでは、アドレス圧縮が不足しているため、任意の読み書きの範囲が広く、ほぼプロセス空間全体を読み書きできる状態です。

今回のPatchGapはIssue1352549だけでなく、Issue1314616やIssue1216437などの類似の脆弱性も含まれています。新しいバイパス方法が公開された後、これらの脆弱性の悪用難易度が大幅に低下し、攻撃者はほとんど追加の研究を行うことなく完全な悪用チェーンを完成させることができます。

! 独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value

まとめ

この記事では、Uninitialized Oddballの漏洩を通じて任意の読み取りを実現する方法について簡単に説明します。V8には他にも複数のSentinel値が存在し、それらも同様の問題を引き起こす可能性があります。これは私たちに次のことを示唆しています:

  1. その他のuninitialized_Oddballの漏洩もV8サンドボックスからの脱出を引き起こす可能性があります。

  2. この種の問題が正式なセキュリティ脆弱性と見なされるべきかどうかは、依然として議論の余地があります。

  3. ファジングテストでSentinel valueを変数として追加し、新しい利用方法を発見することを検討してください。

いずれにせよ、この種の問題は攻撃者が完全に利用するまでのサイクルを大幅に短縮するため、高く重視する価値があります。

! 独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value

原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • 4
  • 共有
コメント
0/400
MoonBoi42vip
· 42分前
ちょっと焦るな、バグが多すぎるよ。
原文表示返信0
SleepyArbCatvip
· 13時間前
コードを書くことしかできない猫...zZz
原文表示返信0
ChainDetectivevip
· 13時間前
やばいv8エンジンの脆弱性 確定した
原文表示返信0
LadderToolGuyvip
· 13時間前
驚いた また解体して遊ぶ
原文表示返信0
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)