Envio de registos, alertas e telemetria através de um diodo de dados

Descubra como
Utilizamos inteligência artificial para as traduções dos sítios e, embora nos esforcemos por garantir a exatidão, estas podem nem sempre ser 100% precisas. Agradecemos a sua compreensão.

Análise técnica da CVE-2025-8088: Gravação arbitrária de ficheiros no WinRAR através do ADS

Por OPSWAT
Última atualização:
Partilhar esta publicação

A CVE-2025-8088 é uma vulnerabilidade de traversal de caminho no WinRAR que afeta versões anteriores à 7.13. A exploração desta vulnerabilidade permite que um arquivo especialmente criado contorne a validação do nome do ficheiro e do caminho durante a extração do arquivo e faça com que conteúdo controlado pelo atacante seja gravado em locais específicos num volume NTFS. Em determinadas condições, esta capacidade de gravação pode ser aproveitada para a execução remota de código.

Os bolseiros do Programa de Bolsas OPSWAT realizaram uma análise técnica do CVE-2025-8088. As conclusões desta análise dos mecanismos RAR5 e NTFS (ADS) traçam o fluxo de trabalho de extração e o percurso de tratamento de ADS que conduzem a gravações inseguras, e resumem orientações práticas de mitigação e correção destinadas a profissionais e organizações de cibersegurança.

Introdução ao CVE-2025-8088

O WinRAR é um dos utilitários de arquivamento mais utilizados no Windows. Suporta a preservação e a restauração de metadados específicos do NTFS, tais como os ADS (Alternate Data Streams). A vulnerabilidade CVE-2025-8088 está presente na lógica de tratamento dos ADS de versões específicas do WinRAR. Nas versões vulneráveis, um arquivo malicioso pode alterar o identificador do fluxo utilizado durante a extração; a normalização e validação inadequadas do caminho no fluxo de trabalho de criação dos ADS permitem a traversal de diretórios.

A vulnerabilidade CVE-2025-8088 é classificada como um problema de gravidade elevada, com uma pontuação base CVSS v4.0 de 8,4 (Elevada), o que reflete o potencial de impacto mensurável na segurança caso um utilizador extraia um arquivo especialmente criado utilizando uma versão vulnerável do WinRAR.

Contexto técnico

Fluxos de dados alternativos do NTFS

O NTFS (New Technology File System) é o sistema de ficheiros predefinido nas versões modernas do Windows. Em comparação com os sistemas de ficheiros baseados em FAT, o NTFS suporta funcionalidades avançadas, incluindo ACLs (listas de controlo de acesso), encriptação EFS, compressão, ligações físicas, pontos de reanálise (junções e ligações simbólicas) e ADS. 

O ADS é uma funcionalidade do NTFS que permite que um único ficheiro ou diretório contenha vários fluxos de dados independentes. O conteúdo principal, visível para o utilizador, é armazenado no fluxo padrão sem nome, normalmente representado como ::$DATA, enquanto os fluxos adicionais com nome podem ser acedidos utilizando a sintaxe: 

nome-do-ficheiro.ext:nome-do-fluxo 

Esses fluxos nomeados normalmente não são visíveis nas vistas padrão do Explorador do Windows, mas são totalmente suportados pelo sistema de ficheiros e podem ser listados utilizando ferramentas compatíveis. Por exemplo,o comando `dir/R` permite visualizar fluxos alternativos. 

O WinRAR suporta a extração de entradas de arquivo que incluam sintaxe ADS. Quando essas entradas existem num arquivo, o WinRAR grava o conteúdo correspondente no fluxo alternativo do ficheiro de destino durante a extração. 

Compreender a estrutura do ficheiro RAR5

Os arquivos RAR5 são armazenados como uma sequência de blocos. Cada bloco começa com um cabeçalho que define o tipo do bloco e as informações de tamanho. Opcionalmente, pode incluir uma área adicional de metadados e uma área de dados composta por bytes de carga útil, como conteúdo comprimido.

Bloco = Cabeçalho + (Área Extra opcional) + (Área de Dados opcional)

O RAR5 utiliza vários tipos de blocos. Os tipos de blocos relevantes na CVE são:

  • Cabeçalho do ficheiro (tipo 2): descreve uma entrada de ficheiro no arquivo (nome/caminho, atributos, registos de data e hora, parâmetros de compressão) e é seguido pelos dados do corpo do ficheiro
  • Cabeçalho de serviço (tipo 3): Cabeçalhos suplementares opcionais que armazenam metadados adicionais associados ao arquivo ou a uma entrada de ficheiro específica, como o ADS

Os ADS no sistema de ficheiros NTFS são representados por um cabeçalho de serviço (tipo 3), designado por STM. A área de dados do cabeçalho de serviço contém os bytes do fluxo ADS correspondentes à entrada do ficheiro base.

Em termos simples:

Figura 1. ADS no sistema de ficheiros NTFS

Análise técnica (CVE-2025-8088)

Fluxo de trabalho de extração de RAR5

O WinRAR processa os arquivos RAR5 como uma sequência de blocos. Durante a extração, ele percorre esses blocos, analisa o cabeçalho de cada um e valida a integridade do cabeçalho utilizando o CRC32 incorporado antes de prosseguir. Após o processamento de uma entrada de ficheiro, o WinRAR descomprime e grava o conteúdo do ficheiro base no disco, determinando em seguida se devem ser aplicados metadados adicionais relacionados com o NTFS através de registos de serviço associados. Quando existe um registo ADS (Alternate Data Stream), como uma entrada de serviço STM, o WinRAR entra no caminho de tratamento de ADS, combina o caminho do ficheiro base com o nome do fluxo para formar o destino ADS e cria o fluxo. 

Figura 2. Fluxo de extração de alto nível reconstruído durante a análise, incluindo o ramo de tratamento do ADS.

No CVE-2025-8088, a causa principal reside no facto de a criação do fluxo ADS invocar a API do Windows API () utilizando um caminho derivado de metadados controlados pelo arquivo, tornando a construção/validação do caminho ADS insuficiente para impedir a traversal.

Identificação do percurso do código ADS («STM»)

Os nossos bolseiros de pós-graduação realizaram uma combinação de análises estáticas e dinâmicas num ambiente laboratorial controlado, utilizando o WinRAR 7.12. Identificaram a lógica relacionada com o ADS através da pesquisa do marcador de serviço «STM» no ficheiro binário e, em seguida, confirmaram o percurso do código do lado da extração em tempo de execução.

Figura 3. Dois pontos do código que fazem referência à sequência de caracteres «STM», utilizada para identificar o tratamento relacionado com o ADS.

Ao colocar um ponto de interrupção na referência «STM» encontrada durante a extração de um arquivo contendo dados ADS, o ponto de interrupção foi acionado de forma consistente, confirmando que este caminho de execução é invocado durante o fluxo de trabalho normal de extração.

Figura 4. Análise dinâmica: ponto de interrupção atingido no percurso de processamento do ADS.

Ao atingir o ponto de interrupção, a pilha de chamadas do depurador foi utilizada para reconstruir a sequência de funções invocadas após a ação «Extrair» na interface do WinRAR, estabelecendo um ponto de referência claro para o processamento em bloco a jusante e o percurso de execução do ADS.

Figura 5. Sequência de chamadas recuperada após a execução da extração do WinRAR, utilizada para identificar o caminho do código ADS.

Análise do cabeçalho e validação CRC32

O WinRAR processa cada bloco RAR5 lendo o cabeçalho do bloco, validando os campos de integridade e encaminhando-o para um manipulador específico para o tipo de bloco. O ponto de entrada do processamento do bloco e a lógica de análise do cabeçalho associada são apresentados nas Figuras 6-10, onde o WinRAR define o ponteiro do ficheiro para o deslocamento do bloco atual, lê os bytes iniciais do cabeçalho — que incluem o tipo e o tamanho do cabeçalho — e valida a integridade do cabeçalho utilizando o CRC32 antes de prosseguir.

Após a validação bem-sucedida, analisa campos de cabeçalho adicionais, tais como indicadores, tamanho descompactado, método de compressão e somas de verificação opcionais. Em seguida, processa o corpo do bloco.

Figura 6. Ponto de entrada para o processamento em blocos durante a extração.
Figura 7. Definição do ponteiro do ficheiro de arquivo e início da análise do cabeçalho.
Figura 8. Análise dos bytes iniciais do cabeçalho e validação do CRC32 do cabeçalho.

Durante a engenharia reversa, observou-se que a rotina CRC32 se comportava de forma consistente com uma implementação padrão do CRC32 ao estilo zlib. Na prática, esta verificação CRC32 funciona como um mecanismo de controlo de integridade. Se os campos do cabeçalho forem modificados, o CRC32 incorporado deve ser atualizado para garantir que o WinRAR aceite o cabeçalho e continue o processamento.

Figura 9. Detalhes da implementação do CRC32 (baseada em tabelas) utilizada durante a verificação de integridade.

Após validar o cabeçalho CRC32, o analisador prossegue com a extração das restantes informações do cabeçalho, tais como o tamanho descompactado, o método de compressão e outros atributos.

Figura 10. Análise de campos de cabeçalho adicionais (tamanhos, indicadores, método de compressão e somas de verificação opcionais).

Após a análise e validação do cabeçalho estarem concluídas, o WinRAR processa o corpo do bloco com base no tipo de cabeçalho analisado e nos indicadores.

Figura 11. Ciclo que descomprime e grava o conteúdo do ficheiro durante a extração.

No CVE-2025-8088, a validação da integridade do cabeçalho é aplicada antes de o WinRAR encaminhar para o manipulador do bloco de serviço que processa os registos ADS.

Criação de anúncios através do bloco de serviços («STM»)

O percurso de processamento ADS é acionado quando o WinRAR encontra um bloco de serviço. Os blocos de serviço utilizam o valor de tipo de bloco 3. Quando um bloco de serviço é detetado, o WinRAR encaminha-o para um manipulador de cabeçalhos de serviço.

Figura 12. Blocos do Serviço de Despacho (tipo 3), que podem transportar registos ADS.

No manipulador de serviços, o WinRAR verifica o nome do serviço. Quando o nome do serviço corresponde a «STM», o registo é tratado como uma carga útil ADS e a implementação passa para uma rotina de criação de ADS.

Figura 13. Envio do registo de serviço: quando o nome do serviço corresponde a «STM», o WinRAR inicia a criação do ADS.

O WinRAR recupera então o nome do fluxo do registo de serviço e combina-o com o caminho base do ficheiro para construir o destino ADS final. Nas versões anteriores à 7.13, a análise revela que o nome do fluxo não é suficientemente sanitizado, permitindo que sequências de traversal influenciem a resolução do caminho de destino resultante.

Figura 14. Obter o nome do fluxo ADS a partir do registo do serviço.
Figura 15. Combinação do caminho base e do nome do fluxo para formar um caminho ADS.

Após criar o destino, o WinRAR gera o fluxo através de uma rotina auxiliar que invoca a API CreateFileW do Windows e, em seguida, grava os bytes ADS utilizando a função WriteFile. Se o caminho resolvido estiver fora do diretório de extração selecionado pelo utilizador, o WinRAR criará o fluxo/ficheiro de destino e preenchê-lo-á com conteúdo controlado pelo atacante.

Figura 16. Ponto de chamada que inicia a criação do ADS durante a extração.
Figura 17. Auxiliar de criação de ADS que delega à rotina de criação de ficheiros.
Figura 18. A função API do Windows invocada com o caminho construído para criar o fluxo ADS.
Figura 19. Gravação de conteúdo ADS controlado pelo atacante no fluxo recém-criado através da função WriteFile.

Em resumo, o fluxo de trabalho de extração de ADS revela duas vulnerabilidades de segurança. Em primeiro lugar, o nome do fluxo ADS não é suficientemente sanitizado, permitindo que sequências de traversal influenciem o caminho de destino resultante. Em segundo lugar, o WinRAR cria o fluxo ADS chamando a função CreateFileW() com um caminho derivado de metadados controlados pelo arquivo.

Em conjunto, estas condições permitem que um arquivo manipulado desvie o destino da função CreateFileW() para fora do diretório de extração pretendido e grave conteúdo controlado pelo atacante num local por ele influenciado. Se o destino for um diretório relevante para a persistência (por exemplo, a pasta «Inicialização» do utilizador), esta operação de gravação pode permitir a execução de código subsequente no próximo início de sessão ou reinicialização, dependendo do tipo de carga útil e da configuração do sistema.

Cenário de ataque

A vulnerabilidade CVE-2025-8088 pode ser explorada na prática em cenários em que um atacante induz um utilizador a extrair um arquivo RAR manipulado utilizando uma versão vulnerável do WinRAR. Um vetor de ataque típico é a engenharia social, como o phishing, que leva a vítima a confiar num arquivo malicioso e a iniciar a extração num sistema crítico.

O arquivo incorpora um registo de serviço ADS («STM»). O nome do fluxo é construído de forma a introduzir semântica de percurso. Durante a extração em NTFS, o WinRAR processa o registo ADS e obtém o caminho do fluxo de destino a partir dos metadados controlados pelo arquivo. Como esta construção do caminho ADS não é suficientemente restrita, o destino resultante pode situar-se fora do diretório de extração selecionado pelo utilizador, incluindo locais críticos como a pasta de arranque do utilizador.

Figura 20. Fluxo do ataque de ponta a ponta: entrega, extração no WinRAR vulnerável e persistência através da pasta «Inicialização».

Prova de conceito

Para demonstrar a vulnerabilidade CVE-2025-8088, os nossos bolseiros de pós-graduação prepararam um ficheiro de arquivo RAR manipulado, contendo um registo de serviço ADS («STM») com campos controlados pelo atacante. Este arquivo está estruturado com um nome de fluxo ADS que inclui sequências de traversal. Esta estrutura influencia a localização final do destino durante o tratamento do ADS, incluindo o caminho passado para CreateFileW() quando o fluxo é criado. Para garantir que o WinRAR aceita os metadados modificados e chega ao caminho de processamento do ADS, os valores CRC32 do cabeçalho relevantes são recalculados para que o arquivo passe na validação de integridade do cabeçalho. 

Figura 21. Exemplo de campos controlados pelo atacante dentro de um arquivo manipulado utilizado para direcionar o caminho ADS.

Quando uma versão vulnerável do WinRAR entra na rotina de processamento ADS durante a extração do arquivo manipulado, ela grava o conteúdo controlado pelo atacante no destino pré-selecionado, em vez do diretório de extração pretendido, selecionado pelo utilizador. Após a extração, a execução da carga maliciosa é determinada pelo seu formato e pela semântica de execução do destino pré-selecionado. Por exemplo, locais que possam executar o conteúdo no próximo início de sessão ou reinicialização.

Figura 22. Demonstração de prova de conceito: uma carga útil introduzida no Startup através do caminho de extração vulnerável.

Remediação

O risco associado à vulnerabilidade CVE-2025-8088 pode ser mitigado através da atualização do WinRAR para uma versão corrigida (7.13 ou posterior) em todos os terminais geridos. Caso não seja possível efetuar a atualização atempadamente, devem ser considerados controlos compensatórios, tais como:

  • Limitar ou desativar a preservação de ADS nas ferramentas de arquivo quando não for necessário
  • Restringir a extração de arquivos compactados não confiáveis a ambientes isolados
  • Aplicar o princípio do privilégio mínimo (evitar a execução de ferramentas de extração com privilégios elevados)
  • Monitorizar diretórios críticos, tais como os locais de arranque, para detetar gravações inesperadas provenientes de fluxos de trabalho de extração de arquivos

Para vulnerability detection precoce vulnerability detection avançada vulnerability detection uma correção rápida, MetaDefender facilita operações de correção urgentes, identificando dispositivos que executam versões vulneráveis do WinRAR e destacando as atualizações necessárias. As suas robustas capacidades de gestão de vulnerabilidades e patches, que suportam mais de 1100 aplicações, identificam de forma proativa os terminais que executam sistemas operativos e aplicações de terceiros sem patches ou desatualizados e fornecem as correções recomendadas.

Vulnerability Management permite aos administradores detetar rapidamente pontos de exposição, priorizar a correção e promover atualizações para uma versão corrigida, reduzindo o risco de ataques de gravação de ficheiros baseados em arquivos, como o CVE-2025-8088, e ameaças semelhantes direcionadas a terminais.

Figura 23. MetaDefender Endpoint versões vulneráveis do WinRAR e recomenda a atualização para uma versão corrigida.

Mantenha-se atualizado com OPSWAT!

Inscreva-se hoje para receber as últimas actualizações da empresa, histórias, informações sobre eventos e muito mais.