CVE-2020-0674
CVE-2020-0674 は、レガシー jscript エンジンにおける use-after-free 脆弱性です。Internet Explorer でトリガーできます。ここにあるエクスプロイトは maxpl0it によって作成されたものですが、脆弱性自体は Qihoo 360 によって実環境での悪用が発見されました。このエクスプロイトは単純に calc(電卓)を起動します。
エクスプロイトの分析記事はこちらから入手できます。
脆弱性の概要
- この脆弱性は、比較関数を使用する際の Array
sort 関数に存在します。
- 比較関数に渡される2つの引数はガベージコレクタによって追跡されないため、GC の呼び出し後には解放済みメモリを指すことになります。
エクスプロイトに関する注意事項
- このエクスプロイトは Windows 7 専用に作成されていますが、おそらくそれほど手間をかけずに移植できるでしょう。
- このエクスプロイトは x64 版の IE 向けに作成されているため、以下のブラウザ構成で動作します(テスト済みです)。
- IE 8(x64 ビルド)
- IE 9(x64 ビルド)
- IE 10(Enhanced Protected Mode が有効、または TabProcGrowth が有効の場合)
- IE 11(Enhanced Protected Mode が有効、または TabProcGrowth が有効の場合)
- 注目すべき点として、Windows 7 の Enhanced Protected Mode は単にブラウザプロセスの x64 版を有効にするだけであるため、これはサンドボックスエスケープというよりは、そもそも追加のサンドボックスが存在しないということです。皮肉なことに、このエクスプロイトは x64 向けなので、EPM によって実際に動作できるようになります。
- このエクスプロイトは EMET を完全にバイパスするようには作られていません(実際に実装されているのはスタックピボット検出のバイパスだけです)。ただし、最終版(5.52)ではエクスプロイト実行時に EAF+ がトリガーされないようですが、5.5 ではトリガーされます(少なくとも Windows 7 x64 では)。したがって、Enhanced Protected Mode で最大の EMET 設定を有効にした IE 11 では、このエクスプロイトが動作します。
- このエクスプロイトには詳細なコメントが付けられていますが、エクスプロイトの仕組みと各段階での動作をより深く理解するには、
var debug = false; を に変更し、開発者コンソールを開いてログを表示するか、開かずに代わりに ポップアップ(少し煩わしいかもしれません)を表示してください。