
CVE-2023-38831 é uma vulnerabilidade Zero-day no WinRAR que permite que atacantes disfarcem arquivos maliciosos em arquivos, enganando usuários para executar conteúdo prejudicial.
CVE-2023-38831 é uma vulnerabilidade zero-day que afeta todas as versões do WinRAR anteriores à 6.23.
O problema está no processamento do formato ZIP, o que pode permitir que atacantes utilizem arquivos afetados para distribuir malware. Agentes maliciosos podem disfarçar arquivos maliciosos dentro de arquivos ZIP dando a eles nomes semelhantes aos legítimos, enganando os usuários para que executem conteúdo prejudicial enquanto acreditam estar abrindo um arquivo seguro. Essa falha tem sido ativamente explorada desde abril de 2023, visando particularmente setores financeiros, representando riscos significativos para usuários que abrem arquivos compactados não confiáveis. Atualizar para o WinRAR 6.23 ou posterior mitiga essa vulnerabilidade ao melhorar a sanitização de nomes de arquivos durante a extração.
No exemplo a seguir, baixei todos os arquivos fornecidos em uma única pasta, executei o script via CMD, especifiquei os nomes de arquivo apropriados (incluindo o exploit) e, por fim, adicionei alguns arquivos aleatórios ao arquivo .rar para torná-lo mais autêntico e ocultar melhor o novo exploit .txt. Quando o usuário clica no suposto arquivo ".txt", ele executará o arquivo .cmd oculto localizado na mesma pasta com um nome correspondente:
https://github.com/user-attachments/assets/91eed756-bb38-42dd-a127-cabaccb4c386
Usando essa ideia, podemos tentar disfarçar o arquivo da forma mais eficaz possível e fazer o exploit parecer urgente ou importante para o usuário. No exemplo a seguir, adicionei vários arquivos aleatórios para fazer o arquivo .rar parecer mais legítimo. Usei um arquivo .txt básico como isca e o nomeei como "INSTRUCTIONS - Open Before Extraction" para atrair o usuário a clicar nele:

Utilizando o script python fornecido, você pode criar seu próprio arquivo RAR que usaremos para ver a lógica por trás deste exploit.
Passo 1 - Baixe os arquivos exploit.py e DoS.cmd.
Passo 2 - Coloque todos em uma pasta e escolha um arquivo isca aleatório; para os fins desta POC, usarei um simples arquivo .jpg.
Passo 3 - Execute o script e insira os nomes necessários
O script funciona da seguinte forma:
Captura os nomes e extensões de arquivo fornecidos.
Cria uma pasta temporária com o script colocado dentro de uma subpasta e o arquivo isca fora dela — ambos nomeados de forma semelhante, com o nome da pasta acrescido de "X" e o nome do arquivo isca acrescido de "Y":

Em seguida, cria um arquivo ZIP a partir da pasta temporária, abre-o em modo binário e modifica os caracteres "X" e "Y", substituindo-os por espaços para fazer parecer que são o mesmo arquivo.
Grava os dados modificados em um arquivo .rar.

Usando um programa como o ProcessMonitor, podemos ver as etapas exatas que o WinRAR executa ao abrir o arquivo:

O problema surge da ambiguidade causada por um arquivo contendo dois arquivos com nomes quase idênticos: "image.jpg " (isca) e
"image.jpg .cmd" (script malicioso). O espaço extra cria um nome base semelhante, o que confunde a forma como tanto o WinRAR quanto o Windows resolvem caminhos de arquivo. Ao clicar em "image.jpg ", o WinRAR lê e cria todos os arquivos relacionados na pasta temporária devido aos seus nomes base semelhantes:

Para resolver a ambiguidade, o WinRAR realiza uma pesquisa com caractere curinga (QueryDirectory) por image.jpg .*, visando localizar um tipo de arquivo executável, garantindo que nenhum outro arquivo relacionado esteja presente. O WinRAR (e o Windows) sempre priorizarão tipos de arquivo executáveis (por exemplo, .cmd, .exe, .bat) ao resolver caminhos ambíguos. Como resultado, ele executou "image.jpg .cmd" usando cmd.exe (Create Process), permitindo que o script malicioso fosse executado em vez de abrir o arquivo isca no visualizador de imagens padrão.
O WinRAR resolveu esse problema na versão 6.23, e os usuários são fortemente aconselhados a atualizar para a versão mais recente.
https://www.win-rar.com/singlenewsview.html?&L=0&tx_ttnews%5Btt_news%5D=232