CVE-2018-20250
Corrija agora. Ela está sob exploração confirmada pelo CISA, tem exploit funcional público e 1 grupo(s) de ameaça a utilizam.
Grupos conhecidos por explorar esta vulnerabilidade (atribuição MITRE ATT&CK).
Apply updates per vendor instructions.
Resumo
Falha de path traversal absoluto (CWE-36) na biblioteca UNACEV2.dll, usada pelo WinRAR para extrair arquivos no formato ACE. Um arquivo ACE malicioso pode escrever um arquivo em qualquer caminho do sistema — inclusive na pasta Startup do usuário — ignorando a pasta de destino escolhida na extração. Como não há corrupção de memória envolvida, é um bug lógico simples de explorar e afeta qualquer instalação do WinRAR até a versão 5.61, o que — combinado à base de mais de 500 milhões de usuários citada pelos pesquisadores — torna a superfície de ataque real, apesar do vetor exigir interação do usuário.
Detalhamento técnico
O WinRAR identifica o tipo de arquivo pelos magic bytes, não pela extensão — então um arquivo com extensão .rar pode conter dados no formato ACE e ainda assim ser processado normalmente pelo programa, que delega a extração para a UNACEV2.dll. Essa DLL foi compilada em 2006, é antiga e não tem nenhuma mitigação de exploração binária (sem ASLR, sem DEP), mas o Check Point Research (Nadav Grossman), ao fuzzá-la com WinAFL, não encontrou um bug de corrupção de memória exploitável — encontrou algo mais simples e mais grave em termos de confiabilidade: um path traversal absoluto no campo de nome de arquivo dentro do arquivo ACE.
Como é explorada
Quando o campo filename do ACE é manipulado com um padrão específico de path traversal, a rotina de extração da UNACEV2.dll ignora a pasta de destino selecionada pelo usuário e trata o filename como um caminho absoluto, escrevendo o conteúdo onde o atacante definir. O vetor prático demonstrado (e replicado no módulo Metasploit e em PoCs públicas) é gravar um executável na pasta Startup do usuário; ao reiniciar a sessão do Windows, o executável roda automaticamente com os privilégios do usuário — não há execução imediata no momento da extração, é necessário reboot ou logon subsequente.
Versões
Como se proteger
A correção do fornecedor não foi um patch pontual na DLL: o WinRAR removeu completamente o suporte ao formato ACE, eliminando a UNACEV2.dll do produto. Atualizar para uma versão que já não inclua suporte a ACE (a partir da linha 5.70, segundo notas de lançamento do fornecedor) resolve o problema por completo, já que o vetor depende inteiramente daquele parser específico.
Como detectar
Em nível de arquivo, um indicador forte é qualquer .rar/.ace cujo conteúdo interno (magic bytes) seja formato ACE mas contenha, no campo filename de uma entrada, sequências de path traversal (padrões como "C:C:../" ou equivalentes) apontando para fora da pasta de extração — isso é visível inspecionando o archive com ferramentas que parseiam ACE (como o projeto acefile em Python) antes de deixá-lo chegar ao WinRAR. Em nível de host, sinal de comprometimento é a criação inesperada de executáveis na pasta Startup do usuário (%APPDATA%\Roaming\Microsoft\Windows\Start Menu\Programs\Startup) logo após a extração de um arquivo .rar recebido externamente, seguida de execução após reboot/logon — não há assinatura de rede confiável, já que a exploração ocorre inteiramente client-side no momento da extração local.