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

Google Chrome V8エンジンにおけるセンチネル値とそのセキュリティリスクの分析

Sentinel valueはアルゴリズムにおける特別な値で、ループや再帰の終了条件によく使用されます。Chromeのソースコードには複数のSentinel valueが含まれており、その中にはJavaScript環境に漏洩するとセキュリティ上の問題を引き起こす可能性があるものがあります。本稿では、漏洩したUninitialized Oddballオブジェクトを利用してChrome V8 HardenProtectメカニズムを回避する方法を探ります。

V8におけるセンチネル値

V8のソースコードのroots.hファイルは、大量のネイティブオブジェクトを定義しており、これらはメモリ内で順番に配置されています。これらのネイティブオブジェクトがJavaScriptに公開されるべきではない場合、漏洩するとサンドボックスの脱出につながる可能性があります。以前のTheHoleオブジェクトの漏洩は、典型的なケースです。

最新版V8の問題を検証するために、%TheHole()関数を変更して、未初期化のOddballオブジェクトを返すようにできます:

JavaScriptの print(%デバッグ印刷(%ホール())); // 出力:初期化されていない値

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

HardenType保護のバイパス

Uninitialized Oddballを利用して、以下のPoCコードを構築することで任意の読み取りを実現できます:

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

初期化されていない = %TheHole(); arr = [1.1]; %最適化のための関数を準備する(読む); read(arr、0); read(arr、0); %次回呼び出しで関数を最適化(読み取る); read(arr、0);

print(read(uninitialized、0x1234n));

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

逆アセンブルされた最適化されたread関数を見ると、obj.propのValueタイプを厳密にチェックしておらず、JavaScriptの意味に従ってオフセットを計算し、配列要素を返しているため、型の混乱が生じて任意の読み取りが実現されています。

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

最適化された関数が配列要素を返す際、配列のmapをチェックして、オフセット戻り値を直接計算しないようにすることを提案しています。

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

PatchGapリスク警告

分析の結果、一部のソフトウェア、例えばSkypeにはPatchGapの問題が存在する可能性があり、その脆弱性はまだ修正されていません。ハッカーはこの脆弱性を利用して、短時間で完全な攻撃チェーンを構築する可能性があります。

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

さらに、新しい回避方法が公開された後、一部の歴史的な脆弱性((Issue1314616、Issue1216437))の悪用の難易度が大幅に低下しました。ベンダーは関連する脆弱性のセキュリティリスクを再評価することをお勧めします。

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

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

サマリー

V8には他にも多くのSentinel valueがあり、さらなる研究が求められます。%TheHole/Uninitialized_Oddballなどを変数としてFuzzerに追加し、新しい利用原語を発掘することを検討することをお勧めします。この種の問題が正式にセキュリティ問題としてリストされているかどうかにかかわらず、それはハッカーの完全な利用サイクルを大幅に短縮する可能性があります。

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

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

SENC10.69%
原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • 5
  • リポスト
  • 共有
コメント
0/400
ParanoiaKingvip
· 7時間前
また一つの危険な場所ですね
原文表示返信0
WenMoon42vip
· 7時間前
またデプス研究ですね
原文表示返信0
CryptoSourGrapevip
· 7時間前
ここにも落とし穴があるとは
原文表示返信0
ForkItAllDayvip
· 7時間前
スタックオーバーフローの新しいアプローチ
原文表示返信0
Fren_Not_Foodvip
· 7時間前
バグを回避するのはすごく魅力的ですね
原文表示返信0
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)