CVE-2020-0674 é uma vulnerabilidade de use-after-free no mecanismo jscript legado. Pode ser acionada no Internet Explorer. O exploit aqui foi escrito por maxpl0it, mas a vulnerabilidade em si foi descoberta pela Qihoo 360 sendo usada na natureza. Este exploit simplesmente abre a calculadora.
A vulnerabilidade existe na função sort do Array ao usar uma função de comparação.
Os dois argumentos fornecidos para a função de comparação não são rastreados pelo Garbage Collector e, portanto, apontarão para memória liberada após a chamada do GC.
Notas do Exploit
O exploit foi escrito especificamente para Windows 7, mas provavelmente pode ser portado sem muita dificuldade.
Este exploit foi escrito para instâncias x64 do IE, portanto será executado (e foi testado) nas seguintes configurações de navegador:
IE 8 (x64 build)
IE 9 (x64 build)
IE 10 (Com Enhanced Protected Mode ativado ou TabProcGrowth ativado)
IE 11 (Com Enhanced Protected Mode ativado ou TabProcGrowth ativado)
Vale notar que o Enhanced Protected Mode no Windows 7 simplesmente ativa a versão x64 do processo do navegador, então não é uma fuga da sandbox tanto quanto a inexistência de uma sandbox adicional. Ironicamente, como este exploit é para x64, o EPM na verdade permite que ele funcione.
O exploit não foi feito para contornar completamente o EMET (Apenas um bypass de detecção de stack pivot foi implementado), no entanto a versão final (5.52) parece não acionar o EAF+ quando o exploit é executado, ao contrário da versão 5.5 (pelo menos no Windows 7 x64). Portanto, o IE 11 no Enhanced Protected Mode com configurações máximas do EMET ativadas permite o exploit.
O exploit é fortemente comentado, mas para entender melhor como o exploit funciona e o que ele está fazendo em cada etapa, altere var debug = false; para var debug = true; e abra o console do desenvolvedor para visualizar o log ou mantenha-o fechado e veja os popups alert (o que pode ser um pouco irritante).