Pesquisadores de cybersecurity revelaram detalhes de uma falha crítica na popular biblioteca async-tar, escrita em Rust, e suas forks, incluindo a tokio-tar.
Essa vulnerabilidade pode permitir a execução remota de código (remote code execution – RCE) sob certas condições.
Identificada como
CVE-2025-62518
e com pontuação 8,1 (alta) no CVSS, a falha recebeu o codinome TARmageddon pela empresa Edera, que a descobriu no final de agosto de 2025.
A vulnerabilidade afeta projetos amplamente utilizados, como testcontainers e wasmCloud.
Segundo a empresa de segurança sediada em Seattle, "no pior cenário, essa falha pode levar a ataques de RCE por meio da sobrescrição de arquivos, como a substituição de arquivos de configuração ou o sequestro de backends de build".
Um agravante é que a tokio-tar está praticamente abandonada, apesar dos milhares de downloads via crates[.]io.
Essa biblioteca Rust permite a leitura e escrita assíncrona de arquivos TAR por meio do runtime Tokio. A última atualização foi em 15 de julho de 2023.
Sem um patch oficial para a tokio-tar, os usuários são orientados a migrar para a astral-tokio-tar, que lançou a versão 0.5.6 corrigindo a vulnerabilidade.
William Woodruff, desenvolvedor da Astral, explicou que versões anteriores apresentam uma falha no parsing de limites, permitindo que invasores insiram entradas extras em arquivos compactados, explorando inconsistências no tratamento dos headers PAX e ustar.
O problema ocorre porque, ao processar arquivos com headers PAX estendidos que possuem override de tamanho, o parser avança a posição do stream com base no tamanho do header ustar, que frequentemente é zero, em vez do tamanho especificado pelo PAX.
Isso faz com que o conteúdo do arquivo seja interpretado como headers legítimos de um arquivo TAR.
Em resumo, a falha decorre da gestão inconsistente entre headers PAX e ustar na definição dos limites dos dados dos arquivos.
PAX (Portable Archive Interchange) é uma extensão do formato USTAR, que armazena propriedades dos arquivos contidos no TAR.
Essa desarmonia, em que o header PAX traz o tamanho correto enquanto o header ustar aponta zero, causa uma inconsistência na análise, levando a biblioteca a interpretar o conteúdo interno como entradas adicionais no arquivo externo.
Conforme explica a Edera, "ao avançar 0 bytes, o parser não pula os dados reais do arquivo (que é um archive TAR aninhado) e logo encontra o próximo header válido, interpretando erroneamente os headers do arquivo interno como entradas do arquivo externo".
Dessa forma, um atacante pode explorar essa vulnerabilidade para "contrabandear" arquivos extras ao processar TARs aninhados, possibilitando sobrescrever arquivos dentro da pasta de extração e, assim, executar código arbitrário.
Um cenário de ataque hipotético seria um invasor subir um pacote especialmente moldado no PyPI, onde o TAR externo contém um pyproject.toml legítimo, enquanto o TAR interno escondido abriga um arquivo malicioso que sequestra o backend de build, sobrescrevendo o arquivo original durante a instalação.
"Embora as garantias do Rust reduzam significativamente o risco de erros de segurança relacionados à memória (como buffer overflow ou use-after-free), elas não eliminam falhas de lógica — e essa inconsistência no parsing é exatamente um erro desse tipo", alertou a Edera.
"Desenvolvedores devem estar atentos a todas as categorias de vulnerabilidades, independentemente da linguagem usada."
Publicidade
Tenha acesso aos melhores hackers éticos do mercado através de um serviço personalizado, especializado e adaptado para o seu negócio. Qualidade, confiança e especialidade em segurança ofensiva de quem já protegeu centenas de empresas. Saiba mais...