CVE-2023-38831
Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.
Apply mitigations per vendor instructions or discontinue use of the product if mitigations are unavailable.
Resumo
Falha lógica no WinRAR (antes da versão 6.23) permite execução de código arbitrário quando o usuário clica duas vezes em um arquivo aparentemente inofensivo (JPG, PDF, TXT) dentro de um ZIP ou RAR malicioso. Foi explorada como zero-day desde abril de 2023 por grupos cibercriminosos contra traders de criptomoedas e, depois da divulgação pública, por atores estatais (APT28/Sandworm, entre outros) segundo o Google TAG. Importa porque o vetor é baixíssima fricção — só requer que a vítima abra um arquivo dentro do WinRAR, sem exploração de memória, sem macro, sem aviso de segurança visível.
Detalhamento técnico
A vulnerabilidade (CWE-706, uso de referência de nome resolvida incorretamente) está na lógica de extração temporária do WinRAR. Ao dar duplo clique num item do arquivo compactado, o WinRAR itera todas as entradas do archive para decidir o que precisa extrair para uma pasta temporária. O bug está no casamento de nomes: se existe uma pasta com o mesmo nome do arquivo selecionado (ex: "poc.png_" com espaço no final, onde "_" representa o espaço), o WinRAR extrai tanto o arquivo benigno quanto todo o conteúdo da pasta homônima — incluindo executáveis — para a raiz do mesmo diretório temporário.
O segundo elo é uma peculiaridade do ShellExecuteExW do Windows. O WinRAR normaliza o caminho ao escrever o arquivo (removendo espaços à direita, já que Windows não permite), mas passa ao ShellExecute o caminho não normalizado, com o espaço à direita ainda presente ("%TEMP%\{dir_aleatório}\poc.png_"). Internamente, ShellExecute chama shell32!PathFindExtension, que falha ao reconhecer extensão com espaço, e cai no fallback shell32!ApplyDefaultExts, que varre o diretório temporário procurando o primeiro arquivo com extensão dentre uma lista fixa (.pif, .com, .exe, .bat, .lnk, .cmd) e o executa — no lugar do arquivo original clicado.
O atacante controla integralmente a estrutura do archive: nome do arquivo-isca, nome da pasta homônima e o conteúdo executável dentro dela. Não é necessário espaço no fim do nome especificamente; qualquer espaço em qualquer posição da extensão do entry já é suficiente para forçar o caminho de código do ApplyDefaultExts, segundo a análise do Google TAG.
Como é explorada
O vetor é local/interativo: a vítima precisa baixar um ZIP ou RAR malicioso e dar duplo clique em um dos arquivos-isca dentro da interface do WinRAR (não basta apenas extrair o archive via clique direito — o gatilho é abrir/visualizar o arquivo direto do WinRAR). Não há necessidade de autenticação de rede nem de configuração não padrão; a única pré-condição real é ter uma versão vulnerável do WinRAR instalada e o usuário interagir com o arquivo dentro do próprio WinRAR.
Na exploração observada, o archive continha um arquivo decoy (PDF, JPG, TXT) e uma pasta com nome idêntico contendo um .cmd ou .bat. Ao abrir o decoy, o script na pasta homônima era executado silenciosamente junto com a abertura do arquivo legítimo — a vítima via o documento normal abrir e não percebia nada de errado. O script então baixava e executava um SFX (self-extracting CAB) que instalava malware como DarkMe, GuLoader ou Remcos RAT, dando acesso remoto ao atacante (keylogging, captura de tela, execução arbitrária de comandos, proxy reverso).
Group-IB documentou exploração contra pelo menos oito fóruns públicos de trading, com 130 dispositivos confirmadamente infectados desde abril de 2023, visando roubo de credenciais e ativos de criptomoedas. Após a divulgação pública em agosto de 2023, PoCs e geradores de exploit surgiram no GitHub em horas, e o Google TAG documentou uso subsequente por grupos apoiados por estados (FROZENBARENTS/Sandworm entregando Rhadamanthys via phishing temático de treinamento de drones; FROZENLAKE/APT28 visando organizações governamentais ucranianas com IRONJAW e shell reverso via SSH). A CVE está no catálogo KEV da CISA e possui módulo Metasploit e PoCs públicos, o que reduz a barreira de reprodução por qualquer ator.
Versões
Como se proteger
A correção definitiva é atualizar para o WinRAR 6.23 ou posterior, lançado em 2 de agosto de 2023, que também corrige a CVE-2023-40477 (execução de comando ao abrir RAR malformado). Como o WinRAR não possui mecanismo de atualização automática silenciosa em muitas instalações corporativas, o patch depende de ação manual do usuário ou de gestão de patch centralizada — e é exatamente essa lentidão de adoção que o Google TAG aponta como motivo da exploração continuada como n-day meses depois do patch existir.
Como controle compensatório, quando a atualização não for imediata: evitar abrir arquivos diretamente de dentro da interface do WinRAR vindos de fontes não confiáveis (extrair o archive completo para um diretório e inspecionar o conteúdo antes de abrir qualquer item reduz o risco, já que o gatilho depende do fluxo de abertura via ShellExecute do próprio WinRAR); bloquear ou monitorar a execução de .cmd/.bat/.pif/.lnk originados de diretórios temporários; usar EDR para alertar sobre processos filho de WinRAR.exe/WinRAR64.exe que sejam cmd.exe, powershell.exe ou binários desconhecidos.
Não funciona como mitigação: apenas remover a associação de tipo de arquivo do Windows Explorer, pois o vetor de exploração ocorre inteiramente dentro da interface do próprio WinRAR ao abrir o arquivo do archive, não pela associação padrão do sistema. Também não é suficiente confiar em antivírus de assinatura, já que o payload inicial é um script gerado dinamicamente e variável entre campanhas.
Como detectar
Em logs de endpoint/EDR, procurar processos filho suspeitos gerados por WinRAR.exe/WinRAR64.exe — especialmente cmd.exe, powershell.exe ou execução de binários com extensão .cmd/.bat/.pif/.lnk a partir de diretórios temporários (%TEMP%\pasta_aleatória) logo após a abertura de um arquivo dentro de um ZIP/RAR. Na inspeção do próprio archive suspeito, o indicador estrutural é a presença de uma pasta com nome idêntico (incluindo espaço à direita ou caractere extra na extensão) ao de um arquivo decoy legítimo (PDF, JPG, TXT), contendo dentro dela um script ou executável.
Não há assinatura de rede confiável, já que a exploração ocorre localmente na máquina da vítima no momento da abertura do arquivo — a telemetria útil está no nível de processo/arquivo do endpoint, não no tráfego. Hashes de amostras específicas (DarkMe, GuLoader, Remcos RAT, Rhadamanthys) documentados pelas fontes citadas servem como IOC pontuais, mas não cobrem variantes futuras do exploit gerado dinamicamente.