Chrome V8 Sentinel Value Leak の脆弱性分析と防御

robot
概要作成中

漏洩したSentinel値は、Chrome V8 HardenProtectのテクニカル分析をバイパスします

Sentinel valueはアルゴリズムにおける特殊な値で、通常はループまたは再帰アルゴリズムの終了条件として存在します。Chromeのソースコードには多くのSentinel valueがあります。最近の研究によると、TheHoleオブジェクトを漏洩させることで、CVE-2021-38003およびCVE-2022-1364のサンドボックス内で任意のコード実行が可能になることが示されています。Googleチームはその後、これら2つの野外脆弱性に対して更新を行いました。

TheHoleオブジェクトの他に、V8にはJavaScriptに漏洩すべきでない他のネイティブオブジェクトがあります。本記事では、Uninitialized Oddballオブジェクトについて議論します。この回避方法は、現在の最新のV8でも依然として利用可能です。

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

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

この方法を検証するために、V8のネイティブ関数を変更して、Uninitialized OddballをJavaScriptに漏洩させることができます。具体的には、%TheHole()関数内のisolateに対するオフセットを変更して、Uninitialized Oddballを返すようにします。

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

Uninitialized Oddballを利用することで、相対的に任意の読み書きが実現できます。最適化されたJavaScriptのread関数は、JavaScriptのセマンティクスに従ってオフセットを計算し、配列の値を取得することで、タイプ混乱を引き起こし、任意の読み取りを実現します。

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

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

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

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

注意すべきは、この方法はChromeだけでなく、他のV8エンジンを使用しているソフトウェアにも影響を及ぼす可能性があるということです。例えば、Skypeは現在もこの脆弱性を修正していません。x86では、アドレス圧縮がないため、任意の読み書きはプロセス全体に対して直接行われます。

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

全体として、Sentinel value内のuninitialized_Oddballを漏洩させることで、任意読みの原語を実現できます。V8には、同様の問題を引き起こす可能性のある他のSentinel valueも存在します。これらのSentinel valueを変数としてfuzzerに追加し、より多くの潜在的な利用原語を掘り下げることをお勧めします。正式にセキュリティ問題として扱われるかどうかに関わらず、この種の問題はハッカーが完全な利用を実現するまでの期間を大幅に短縮するでしょう。

SENC-12.27%
原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • 5
  • 共有
コメント
0/400
FUD_Vaccinatedvip
· 07-23 14:29
ああ、このブラウザにもバックドアがあるのか
原文表示返信0
TommyTeachervip
· 07-20 16:35
確かにちょっと危険ですね
原文表示返信0
BrokeBeansvip
· 07-20 16:22
一日中穴を掘ることを考えているなら、手で問題を解く方が良くないですか?
原文表示返信0
GateUser-ccc36bc5vip
· 07-20 16:13
v8はこんなに弱いのか?
原文表示返信0
StablecoinGuardianvip
· 07-20 16:09
おおお V8の安全性にまた問題が発生しましたね
原文表示返信0
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)