CVE-2020-0674 — это уязвимость use-after-free в устаревшем движке jscript. Её можно вызвать в Internet Explorer. Эксплойт здесь написан maxpl0it, но сама уязвимость была обнаружена Qihoo 360 при использовании в реальных атаках. Этот эксплойт просто запускает калькулятор (calc).
Уязвимость существует в функции сортировки массива sort при использовании функции сравнения.
Два переданных аргумента для функции сравнения не отслеживаются сборщиком мусора, и поэтому будут указывать на освобождённую память после вызова GC.
Примечания к эксплойту
Эксплойт написан специально для Windows 7, но, вероятно, его можно портировать без особых проблем.
Этот эксплойт написан для 64-битных версий IE, поэтому будет работать (и был протестирован) на следующих конфигурациях браузеров:
IE 8 (x64 сборка)
IE 9 (x64 сборка)
IE 10 (либо с включённым расширенным защищённым режимом, либо с включённым TabProcGrowth)
IE 11 (либо с включённым расширенным защищённым режимом, либо с включённым TabProcGrowth)
Стоит отметить, что расширенный защищённый режим в Windows 7 просто включает 64-битную версию процесса браузера, так что это не обход песочницы, а скорее отсутствие дополнительной песочницы. По иронии судьбы, поскольку этот эксплойт предназначен для x64, EPM фактически позволяет ему работать.
Эксплойт не предназначен для полного обхода EMET (реально реализован только обход обнаружения stack pivot), однако финальная версия (5.52), похоже, не запускает EAF+ при запуске эксплойта, в то время как 5.5 — да (по крайней мере, на Windows 7 x64). Таким образом, IE 11 в расширенном защищённом режиме с максимальными настройками EMET позволяет использовать эксплойт.
Эксплойт снабжён множеством комментариев, но чтобы лучше понять, как он работает и что делает на каждом этапе, измените var debug = false; на var debug = true; и либо откройте консоль разработчика для просмотра лога, либо оставьте её закрытой и смотрите всплывающие окна alert (что может быть немного раздражающим).