V8 Sentinel の値漏洩の脆弱性: 新しい Chrome サンドボックス エスケープ方法の分析

Chrome V8エンジンにおけるSentinel Valueのセキュリティリスクについての考察

Sentinel値はアルゴリズムにおける特別な値であり、通常はループまたは再帰アルゴリズムの終了条件として存在します。Chromeのソースコードには多くのSentinel値があります。最近の研究により、特定のSentinel値オブジェクトを漏洩させることで、Chromeサンドボックス内で任意のコード実行が可能になることが示されています。

この記事では、新しいSentinel valueオブジェクトであるUninitialized Oddballについて説明します。この回避方法は、ある脆弱性報告書に最初に登場し、セキュリティ研究者によって完全なコードが提供されました。注目すべきは、現在この方法は最新のV8でも依然として使用可能であり、修正されていないことです。

この方法は高い汎用性を持っています:

  1. あるCVEの脆弱性において、最初のPoCは内部の初期化されていない異常なものを漏洩するものでした。

  2. 別のCVE脆弱性レポートでは、研究者がUninitializedOddballを直接漏洩させましたが、その時点での利用チェーンは不完全でしたが、すでにセキュリティ上の懸念が示されています。

最近の脆弱性報告では、完全な利用方法が示されています。

これらの事例は、この問題の普遍性と深刻さを示しています。現時点では、ある通信ソフトウェアはこの脆弱性を修正していません。

V8におけるセンティネル値の適用

V8ソースコードでは、多数のネイティブオブジェクトが定義されており、それらはメモリ内で順に隣接して配置されています。一度、漏洩してはいけないネイティブオブジェクトがJavaScriptに公開されると、サンドボックス内で任意のコードを実行される可能性があります。

この方法が最新のV8で有効であることを検証するために、V8のネイティブ関数を修正し、Uninitialized OddballをJavaScriptに漏らすことができます。

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

HardenType保護のバイパス

私たちはコードを構築できます。ある関数がUninitializedOddballを返すときに、相対的に任意の読み取りを実現します。最適化されたアセンブリコードを分析すると、関数はオブジェクトの属性が正しいかどうかのみをチェックし、属性に対応する値はチェックしていないことがわかります。直接JavaScriptの意味論に従ってオフセットを計算し、配列要素を取得することで、型混乱が生じ、任意の読み取りが実現されます。

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

同様に、任意の書き込みも似たような方法で構築できます。最適化関数が配列要素を返す際に、配列のマップのチェックを追加し、オフセットの戻り値を直接計算するのを避けることをお勧めします。

セキュリティリスクの警告

分析によると、ある通信ソフトウェアは現在もこの脆弱性を修正していません。x86システムでは、アドレス圧縮が欠如しているため、任意の読み書きがプロセス全体に直接相対しています。ASLRが有効になっているにもかかわらず、ファイルが大きいため、重要な内容に読み書きされる可能性が依然として高いです。PE解析などの手法を組み合わせることで、短時間で完全なエクスプロイトチェーンを完成させることが可能です。

今回のセキュリティ上の脆弱性は、単一のバグにとどまらず、以前のいくつかの類似した脆弱性の悪用の難易度を大幅に低下させました。ハッカーは追加の研究をほとんど必要とせず、完全な悪用を実現でき、以前報告されたすべての類似脆弱性を含んでいます。

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

まとめ

この記事では、Uninitialized Oddballを利用した任意の読み取りを実現する方法について簡単に説明します。V8には他にも多くのSentinel値があり、同様のセキュリティリスクが存在する可能性があります。これは私たちにいくつかの示唆を与えます:

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

  2. このような問題は正式にセキュリティ脆弱性と見なされるべきですか?

  3. FuzzテストにSentinel value関連の変数を追加する必要がありますか? より多くの潜在的な問題を発見するために?

いずれにせよ、この種の問題はハッカーが完全に利用するまでのサイクルを大幅に短縮する可能性があり、非常に重要です。

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

原文表示
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • 報酬
  • 4
  • 共有
コメント
0/400
ArbitrageBotvip
· 07-11 10:52
グーグルはどうやっているのか、これでバグが出るなんて
原文表示返信0
SelfSovereignStevevip
· 07-10 20:07
ブラウザ保護はどこですか?
原文表示返信0
StablecoinArbitrageurvip
· 07-10 19:58
うーん、意味のあるアービトラージの機会が生まれる前に99.8%の確率で修正される別のエクスプロイトがあるね...
原文表示返信0
DefiPlaybookvip
· 07-10 19:45
ブラウザもエアドロップしたの? この波は得られるの?
原文表示返信0
  • ピン
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)