V8エンジンSentinel Valueの漏洩によるHardenProtectのセキュリティリスクの回避

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

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

V8のセンチネル値

V8のほとんどのネイティブオブジェクトはv8/src/roots/roots.hファイルで定義されており、これらのオブジェクトはメモリ内で隣接して配置されています。これらのネイティブオブジェクトがJavaScriptに露出してはいけないのに漏洩すると、サンドボックス内で任意のコードが実行される可能性があります。

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

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

HardenType保護のバイパス

漏洩したUninitialized Oddballオブジェクトを利用して、以下のコードを構築することで、相対的な任意の読み取りを実現できます:

JavaScriptの 関数 read(obj, idx) { obj[idx]を返します。 }

arr = [1.1, 2.2, 3.3]; uninitialized_oddball = %TheHole();

(letの場合、i = 0; 私は100000<。 i ++) { read(arr、0);
}

%次回呼び出しでの最適化(読み取り);

結果= read(uninitialized_oddball、0x12345); %デバッグ印刷(結果);

最適化されたread関数のアセンブリコードは、配列オフセットを計算する際にobj.propの値の型をチェックせず、JavaScriptのセマンティクスに従って直接計算するため、型の混乱を引き起こし、任意の読み取りを実現しています。

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

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

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

PatchGapリスク警告

この脆弱性は、現在いくつかの旧バージョンのV8エンジンを使用しているソフトウェア(、例えばSkype)ではまだ修正されていません。x86プラットフォームでは、アドレス圧縮がないため、任意の読み書きがプロセス全体に対して直接行われる可能性があります。

この新しいバイパス手法の公開により、関連する脆弱性を利用する難易度が下がりました。ハッカーは追加の研究をほとんど必要とせずに、未初期化のオッドボール脆弱性を完全に利用することができます。

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

まとめ

V8には他のSentinel値も存在し、同様のセキュリティ問題を引き起こす可能性があります。さらなる調査をお勧めします:

  1. 他の未初期化のオッドボールの漏洩もV8のRCEを実現できるのか。
  2. このような問題を正式にセキュリティ脆弱性としてリストアップすべきか
  3. Fuzzerテストでは、Sentinel値を変数として追加する必要がありますか?

いずれにせよ、このような問題はハッカーが完全に利用するまでの期間を大幅に短縮し、非常に重要です。

! 独占公開バイパス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

SENC-0.28%
原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • 6
  • 共有
コメント
0/400
GateUser-bd883c58vip
· 08-04 04:05
この脆弱性は、ちょっと怖いぐらいハードコアです。
原文表示返信0
SerumDegenvip
· 08-02 17:19
gm フレン... v8でまた別のアルファリークが発見されました、私たちは皆レクトされています
原文表示返信0
ThatsNotARugPullvip
· 08-02 17:19
このChromeを背負ってください。他人はあなたに穴を掘って見せてくれました。
原文表示返信0
RektButStillHerevip
· 08-02 17:09
サンドボックス保護はどうしてこんなに弱いの?
原文表示返信0
CryptoNomicsvip
· 08-02 17:01
*ため息* またしても、私の回帰分析がChromeのセキュリティモデルにおいて統計的に有意であることを証明する脆弱性が発見された... それでも誰も聞いてくれなかった
原文表示返信0
MetaverseHobovip
· 08-02 16:58
このバグは人をハッキングしすぎだろう 月へ
原文表示返信0
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)