## Sentinel ValueのChrome V8における応用とそのセキュリティリスクV8エンジンには、TheHoleやUninitialized Oddballなどのさまざまな特殊なSentinel Valueオブジェクトが存在します。これらのオブジェクトは本来JavaScript環境に漏洩するべきではありませんが、特定の脆弱性によって露出する可能性があり、それがセキュリティ問題を引き起こす可能性があります。最近、研究者たちは、Uninitialized Oddballオブジェクトの漏洩を通じてV8のHardenType保護メカニズムを回避できることを発見しました。この方法は、Project Zeroチームのメンバーが提出した問題報告に最初に登場し、現在の最新バージョンのV8でも有効です。この回避方法は普遍的であり、CVE-2021-30551やCVE-2022-1486など、複数の歴史的な脆弱性の利用に使用できます。これは脆弱性の悪用の難易度を下げ、初期化されていないOddballオブジェクトの漏洩だけでリモートコードの実行が可能になることがあります。! [独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value](https://img-cdn.gateio.im/social/moments-263e5651876fc00c4e0af0cfcd350210)この方法を検証するために、V8のネイティブ関数%TheHole()を修正して、未初期化のOddballオブジェクトを返すようにできます。テストの結果、これは実際に相対的に任意のメモリ読み取りを実現できることが示されています。! [独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value](https://img-cdn.gateio.im/social/moments-26c26345e3ec4effeea2e3e6b7cd8772)最適化されたJavaScriptコードでは、V8は配列要素の型を十分にチェックせず、オフセットで計算して値を返すため、型の混同や任意の読み取りが発生します。このような事態を避けるために、最適化プロセスで配列のマップのチェックを追加することをお勧めします。! [独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value](https://img-cdn.gateio.im/social/moments-4c091ca0e153e953eb168e99762ff7cc)この回避方法の発見は、いくつかの重要な問題を浮き彫りにしています:1. 他のSentinel Valueオブジェクトの漏洩も同様に危険です2. 関連する問題が正式なセキュリティ脆弱性と見なされるべきかどうかは依然として議論の余地があります3. フォグテストでは、Sentinel Valueを変数として導入することを検討できますいずれにせよ、この種の問題はハッカーが完全に悪用するまでの期間を大幅に短縮するため、高く評価されるべきです。関連するソフトウェアベンダーは、潜在的なリスクを低減するために影響を受けたバージョンを迅速に修正する必要があります。! [独占公開バイパス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)! [独占公開バイパス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)! [独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value](https://img-cdn.gateio.im/social/moments-e9e2000fd501b69ee3ee643a459a26dd)
V8エンジンのSentinel Valueの漏洩が安全リスクを引き起こすため、警戒が必要です。
Sentinel ValueのChrome V8における応用とそのセキュリティリスク
V8エンジンには、TheHoleやUninitialized Oddballなどのさまざまな特殊なSentinel Valueオブジェクトが存在します。これらのオブジェクトは本来JavaScript環境に漏洩するべきではありませんが、特定の脆弱性によって露出する可能性があり、それがセキュリティ問題を引き起こす可能性があります。
最近、研究者たちは、Uninitialized Oddballオブジェクトの漏洩を通じてV8のHardenType保護メカニズムを回避できることを発見しました。この方法は、Project Zeroチームのメンバーが提出した問題報告に最初に登場し、現在の最新バージョンのV8でも有効です。
この回避方法は普遍的であり、CVE-2021-30551やCVE-2022-1486など、複数の歴史的な脆弱性の利用に使用できます。これは脆弱性の悪用の難易度を下げ、初期化されていないOddballオブジェクトの漏洩だけでリモートコードの実行が可能になることがあります。
! 独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value
この方法を検証するために、V8のネイティブ関数%TheHole()を修正して、未初期化のOddballオブジェクトを返すようにできます。テストの結果、これは実際に相対的に任意のメモリ読み取りを実現できることが示されています。
! 独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value
最適化されたJavaScriptコードでは、V8は配列要素の型を十分にチェックせず、オフセットで計算して値を返すため、型の混同や任意の読み取りが発生します。このような事態を避けるために、最適化プロセスで配列のマップのチェックを追加することをお勧めします。
! 独占公開バイパス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
! 独占公開バイパスChrome v8 HardenProtect by Leaking Sentinel Value