# Sentinel ValueをリークしてChrome v8 HardenProtectをバイパスするメカニズムを探る## はじめにセンチネル値はアルゴリズムにおける特別な値で、ループや再帰アルゴリズムの終了条件としてよく使用されます。Chromeのソースコードではこの特別な値が広く使われています。最近の研究によると、TheHoleオブジェクトを漏洩させることで、Chromeのサンドボックス内で任意のコード実行脆弱性を実現できることが示されています。本稿では、もう一つの関連オブジェクト - 未初期化のオッドボール - について探り、それがどのようにChromeのセキュリティメカニズムを回避するために使用されるかを考察します。注目すべきは、現在の最新バージョンのV8エンジンにもこの問題が存在することです。この方法はかなりの汎用性を持ち、複数の歴史的な脆弱性の悪用の難易度に影響を及ぼす可能性があります。! [独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value](https://img-cdn.gateio.im/social/moments-263e5651876fc00c4e0af0cfcd350210)## V8のセンチネル値V8ソースコードには、多くのネイティブオブジェクトが定義されており、それらはメモリ内で隣接して配置されています。これらのオブジェクトが誤ってJavaScript環境に露出すると、サンドボックスからの脱出を引き起こす可能性があります。前述したTheHoleオブジェクトの漏洩は、その典型的なケースです。私たちは、V8のネイティブ関数を変更することでこれを検証できます。例えば、%TheHole()関数のオフセットを変更して、Uninitialized Oddballオブジェクトを返すようにします。! [独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value](https://img-cdn.gateio.im/social/moments-26c26345e3ec4effeea2e3e6b7cd8772)! [独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value](https://img-cdn.gateio.im/social/moments-4c091ca0e153e953eb168e99762ff7cc)## HardenType保護のバイパスUninitialized Oddballオブジェクトを利用することで、相対的に任意のメモリ読み取りを実現できます。鍵となるのは、最適化されたJavaScriptコードがオブジェクトのプロパティを正しくチェックせず、直接JavaScriptの意味に従ってオフセットを計算して配列要素にアクセスするため、型の混乱が引き起こされることです。提案された修正案は、最適化関数が配列要素を返す際に、配列のマップをチェックし、オフセットを直接計算しないようにすることです。! [独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value](https://img-cdn.gateio.im/social/moments-1e3fda77c04bceafdcc40413824a5d37)! [独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value](https://img-cdn.gateio.im/social/moments-ed89289bebf59d4b27f5bffb5511a8c5)! [独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value](https://img-cdn.gateio.im/social/moments-0e52075003a8ee2ca492a5fc9f35c36b)## PatchGapリスク警告 分析の結果、一部のソフトウェアにPatchGapの問題が存在する可能性があり、この脆弱性はまだ修正されていません。Skypeを例に挙げると、そのファイルが大きく、直接メモリに読み込まれるため、攻撃者は固定アドレスを介して読み書きを行うことで悪用する可能性があります。この新しいバイパス方法の公開は、いくつかの歴史的な脆弱性の悪用の難易度を下げる可能性があります。関連する側は、影響を受けるソフトウェアと脆弱性を再評価することをお勧めします。! [独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value](https://img-cdn.gateio.im/social/moments-230537e420d579aabd89bdd168b20878)! [独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value](https://img-cdn.gateio.im/social/moments-506159c94c9e0988552cbcbd13d971e1)## まとめこの記事では、Uninitialized OddballなどのSentinel valueを漏洩させることによって任意の読み取りを実現する可能性について簡単に議論します。V8には他にもSentinel valueが存在し、同様のセキュリティリスクがある可能性があります。これは私たちに次のことを示唆しています:1. その他の未初期化のOddballの漏洩は、V8サンドボックスの脱出を引き起こす可能性があります。2. この種の問題の安全な位置付けはまだ明確ではありません3. Sentinel値を変数としてfuzzerテストに追加することを検討できますいずれにせよ、この種の問題は攻撃者の完全な利用サイクルを大幅に短縮する可能性があり、高い注意が必要です。! [独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value](https://img-cdn.gateio.im/social/moments-e9e2000fd501b69ee3ee643a459a26dd)
Chrome V8エンジンにSentinel Value漏洩の脆弱性が存在し、サンドボックスの脱出が可能です。
Sentinel ValueをリークしてChrome v8 HardenProtectをバイパスするメカニズムを探る
はじめに
センチネル値はアルゴリズムにおける特別な値で、ループや再帰アルゴリズムの終了条件としてよく使用されます。Chromeのソースコードではこの特別な値が広く使われています。最近の研究によると、TheHoleオブジェクトを漏洩させることで、Chromeのサンドボックス内で任意のコード実行脆弱性を実現できることが示されています。本稿では、もう一つの関連オブジェクト - 未初期化のオッドボール - について探り、それがどのようにChromeのセキュリティメカニズムを回避するために使用されるかを考察します。
注目すべきは、現在の最新バージョンのV8エンジンにもこの問題が存在することです。この方法はかなりの汎用性を持ち、複数の歴史的な脆弱性の悪用の難易度に影響を及ぼす可能性があります。
! 独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value
V8のセンチネル値
V8ソースコードには、多くのネイティブオブジェクトが定義されており、それらはメモリ内で隣接して配置されています。これらのオブジェクトが誤ってJavaScript環境に露出すると、サンドボックスからの脱出を引き起こす可能性があります。前述したTheHoleオブジェクトの漏洩は、その典型的なケースです。
私たちは、V8のネイティブ関数を変更することでこれを検証できます。例えば、%TheHole()関数のオフセットを変更して、Uninitialized Oddballオブジェクトを返すようにします。
! 独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value
! 独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value
HardenType保護のバイパス
Uninitialized Oddballオブジェクトを利用することで、相対的に任意のメモリ読み取りを実現できます。鍵となるのは、最適化されたJavaScriptコードがオブジェクトのプロパティを正しくチェックせず、直接JavaScriptの意味に従ってオフセットを計算して配列要素にアクセスするため、型の混乱が引き起こされることです。
提案された修正案は、最適化関数が配列要素を返す際に、配列のマップをチェックし、オフセットを直接計算しないようにすることです。
! 独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value
! 独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value
! 独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value
PatchGapリスク警告
分析の結果、一部のソフトウェアにPatchGapの問題が存在する可能性があり、この脆弱性はまだ修正されていません。Skypeを例に挙げると、そのファイルが大きく、直接メモリに読み込まれるため、攻撃者は固定アドレスを介して読み書きを行うことで悪用する可能性があります。
この新しいバイパス方法の公開は、いくつかの歴史的な脆弱性の悪用の難易度を下げる可能性があります。関連する側は、影響を受けるソフトウェアと脆弱性を再評価することをお勧めします。
! 独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value
! 独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value
まとめ
この記事では、Uninitialized OddballなどのSentinel valueを漏洩させることによって任意の読み取りを実現する可能性について簡単に議論します。V8には他にもSentinel valueが存在し、同様のセキュリティリスクがある可能性があります。これは私たちに次のことを示唆しています:
いずれにせよ、この種の問題は攻撃者の完全な利用サイクルを大幅に短縮する可能性があり、高い注意が必要です。
! 独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value