Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
cve-tarmageddon — Demonstração do CVE-2025-62518: uma vulnerabilidade crítica de substituição do tamanho do cabeçalho estendido PAX em tokio-tar e bibliotecas tar assíncronas em Rust, com ferramentas de reprodução e análise do raio de impacto. | Kitploit
Ferramentas/GitHubGitHub/edera-dev/cve-tarmageddon
Análise de VulnerabilidadesExploraçãoFuzzingAnálise de BináriosSegurança da Cadeia de SuprimentosAprendizado e Educação
GitHubedera-dev/cve-tarmageddon

cve-tarmageddon

Demonstração do CVE-2025-62518: uma vulnerabilidade crítica de substituição do tamanho do cabeçalho estendido PAX em tokio-tar e bibliotecas tar assíncronas em Rust, com ferramentas de reprodução e análise do raio de impacto.

Ver Repositório
19421há 1 anoAinda não revisado
Site

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Ivy Astronaut

CVE-2025-62518: TARmageddon

Este repositório demonstra um bug crítico em tokio-tar e bibliotecas Rust async relacionadas de tar, onde as substituições de size do cabeçalho estendido PAX não são aplicadas antes de calcular a posição do próximo cabeçalho.

Resumo do Bug

Causa raiz: Ao processar arquivos tar com cabeçalhos estendidos PAX que substituem o tamanho do arquivo, a biblioteca usa o campo de tamanho octal (frequentemente zero) em vez da substituição PAX para cálculos de posição.

Impacto: Isso faz com que o analisador salte para o conteúdo do arquivo e o confunda com cabeçalhos tar, levando à extração de arquivos errados.

Bibliotecas afetadas conhecidas:

  • async-tar https://github.com/dignifiedquire/async-tar
  • tokio-tar https://github.com/vorot93/tokio-tar
  • krata-tokio-tar https://github.com/edera-dev/tokio-tar
  • astral-tokio-tar https://github.com/astral-sh/tokio-tar

Início Rápido

# Requirements: CMake, Rust/Cargo, C++ compiler, system tar command

cmake -S . -B build
cmake --build build --target generate_report

Isso irá:

  1. Compilar todas as ferramentas C++ e Rust
  2. Gerar um arquivo tar de caso de reprodução
  3. Executar comparações demonstrando o bug
  4. Gerar relatórios detalhados em build/output/

Estrutura do Projeto

├── disclosure/               # Security disclosure documentation tree
│   └── blast_radius/         # Record of projects depending on tokio-tar variants
├── repro_generator/          # C++ tool to generate a repro case tar file
├── tar-bug-detector/         # Rust tool comparing tar libraries  
├── tarwalk/                  # Correct C++ tar parser
│   ├── tarwalk.cpp           # Handles PAX correctly
│   └── tarwalk_bad.cpp       # Reproduces the same bug
├── CMakeLists.txt            # Build system
├── generate_report.cmake     # Report generation
└── README.md                 # This file

O Bug em Detalhe

Processamento TAR Normal

Header -> Content (size from octal field) -> Next Header

Processamento TAR Estendido PAX (Correto)

PAX Header (size=1024) -> File Header (octal size=0) -> Content (1024 bytes) -> Next Header

Processamento TAR Estendido PAX (Defeituoso)

PAX Header (size=1024) -> File Header (octal size=0) -> Content (0 bytes) -> WRONG POSITION
                                                                              ↓
                                                                    Reading content as headers!

Gatilho no Mundo Real

O Docker save cria arquivos tar com:

  • Camadas grandes (>8GB) que exigem extensões PAX
  • Conteúdo de camada começando com cabeçalhos tar de sistema de arquivos (etc/, usr/)
  • Quando o bug é acionado, os analisadores extraem conteúdo do sistema de arquivos em vez dos manifestos de imagem

Arquivos de Reprodução Gerados

  • pax_bug_compact.tar - Caso de reprodução mínimo

Resultados Esperados

Bibliotecas corretas (GNU tar, crate tar síncrono):

normal.txt -> blob.bin -> marker.txt

Bibliotecas com bug (tokio-tar):

normal.txt -> blob.bin -> INNER_FILE -> marker.txt

O aparecimento de INNER_FILE indica o bug - a biblioteca saltou para o conteúdo de blob.bin e confundiu um cabeçalho tar falso com uma entrada real.

Detalhes Técnicos

A correção exige aplicar as substituições PAX antes dos cálculos de posição:

// Read header
let mut file_size = header.size();

// Apply PAX overrides BEFORE calculating next position
if let Some(pax_size) = pending_pax.get("size") {
    file_size = pax_size.parse().unwrap();
}

// Now calculate next header position using effective size
let next_pos = current_pos + 512 + pad_to_512(file_size);

Licença

Este código de reprodução é fornecido para fins de pesquisa em segurança e divulgação responsável.

Consulte COPYING para a licença do código-fonte original.

Baixar ferramenta