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.
Chrome V8 Sentinel Valueのセキュリティリスク:初期化されていないOddballオブジェクトの漏洩がサンドボックスの抜け出しを引き起こす可能性があります
Sentinel ValueのChrome V8におけるセキュリティリスク
Sentinel valueはアルゴリズムにおける特別な値で、ループや再帰アルゴリズムの終了条件としてよく使用されます。Chromeのソースコードには複数のSentinel valueが存在し、その中のいくつかがJavaScript環境に漏洩するとセキュリティ問題を引き起こす可能性があります。
以前の研究では、TheHoleオブジェクトの漏洩により、サンドボックス内で任意のコード実行が可能であることが示されています。Googleチームはこれを修正しました。しかし、実際にはV8には他のネイティブオブジェクトがあり、これらはJSに漏洩すべきではありません。例えば、Uninitialized Oddballオブジェクトです。
初期化されていないOddballオブジェクトの漏洩は、サンドボックスの逃避を引き起こす可能性があります。この問題はIssue1352549に最初に現れ、現在も修正されていません。この方法は一定の汎用性を持ち、複数の脆弱性で現れています。
V8のネイティブオブジェクトはv8/src/roots/roots.hファイルに定義されており、メモリ内で隣接して配置されています。これらのオブジェクトがJavaScript環境に漏洩すると、サンドボックスの脱出が可能になることがあります。
! 独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value
この問題を検証するために、V8のネイティブ関数を変更して、Uninitialized OddballをJavaScriptに漏らすことができます。具体的には、%TheHole()関数の実装を変更できます。
! 独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value
Uninitialized Oddballオブジェクトを利用することでHardenType保護を回避できます。特定の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
修正提案については、最適化された関数が配列要素を返す際に、配列のmapに対するチェックを追加し、オフセットを直接計算して値を返すことを避けるべきです。
この問題は、PatchGapに注意するよう私たちに警告しています。つまり、特定のソフトウェアが未修正のV8バージョンを使用している可能性があるということです。例えば、Skypeは現在この問題を修正していません。x86アーキテクチャでは、アドレス圧縮がないため、プロセス範囲内での任意の読み書きが可能です。
! 独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value
! 独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value
全体的に見て、V8には他にもさまざまなセンチネル値が存在し、類似のセキュリティリスクが考えられます。他の未初期化のオッドボールの漏洩の影響についてさらに研究し、このようなオブジェクトをファジングの対象に含めて、より多くの潜在的な利用方法を発見することを検討することをお勧めします。いずれにせよ、このような問題は攻撃者の脆弱性の利用サイクルを大幅に短縮する可能性があります。