ニュースソース:Browse Exploit Database
以下は、2018年5月25日に公開されたMicrosoft Edge Chakra – Cross Context Use-After-Freeを要約したものです。
ChakraのCrossSiteクラスは、異なるコンテキスト間でJavaScript変数を渡すために使用されます。
Chakraは基本的に、コンテキストから別のコンテキストに渡されるすべての変数をラップしようとしています。オブジェクトをラップする方法は、まず、指定されたオブジェクトの仮想関数テーブルポインタを上書きし、オーバーライドされたメソッド内のすべての入力と出力をチェックしてラップします。
その理由は、クローズドコンテキストへの直接アクセスが、Use-After-Freeなどの予期しない動作を引き起こす可能性があるためです。
Use-After-Free
文字列定数などの一部のオブジェクトのアドレスは、JITedコードに直接インライン展開されます。
コンテキストを閉じるとき、コンテキストはそれらのオブジェクトへの参照を失います。また、ガベージコレクタはJITedコード領域をガベージコレクションのためにスキャンしないため、Use-After-Freeが発生する可能性があります。
Chakra:MicrosoftのWebブラウザとWindows上のアプリケーションで使用されるJavaScriptエンジンの名称。
Use-After-Free:プログラムの不整合により解放済みのヒープメモリアドレスが参照可能な場合、任意のコード実行が可能になる脆弱性。
Use-After-Free:プログラムの不整合により解放済みのヒープメモリアドレスが参照可能な場合、任意のコード実行が可能になる脆弱性。