Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
cve-tarmageddon — Demostración de CVE-2025-62518: un fallo crítico de anulación del tamaño de la cabecera extendida PAX en tokio-tar y las bibliotecas tar asíncronas de Rust, con herramientas de reproducción y análisis del radio de impacto. | Kitploit
Herramientas/GitHubGitHub/edera-dev/cve-tarmageddon
Análisis de VulnerabilidadesExplotaciónFuzzingAnálisis de BinariosSeguridad de Cadena de SuministroAprendizaje y Educación
GitHubedera-dev/cve-tarmageddon

cve-tarmageddon

Demostración de CVE-2025-62518: un fallo crítico de anulación del tamaño de la cabecera extendida PAX en tokio-tar y las bibliotecas tar asíncronas de Rust, con herramientas de reproducción y análisis del radio de impacto.

Ver Repositorio
19412hace 11 mesesAún no revisado
Sitio web

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Ivy Astronaut

CVE-2025-62518: TARmageddon

Este repositorio demuestra un error crítico en tokio-tar y en bibliotecas Rust asíncronas de tar relacionadas, donde las sobrescrituras de size en las cabeceras extendidas PAX no se aplican antes de calcular la posición de la siguiente cabecera.

Resumen del error

Causa raíz: Al procesar archivos tar con cabeceras extendidas PAX que sobrescriben el tamaño del archivo, la biblioteca utiliza el campo de tamaño octal (a menudo cero) en lugar de la sobrescritura PAX para los cálculos de posición.

Impacto: Esto provoca que el analizador salte al contenido del archivo y lo confunda con cabeceras tar, lo que lleva a la extracción de archivos incorrectos.

Bibliotecas afectadas conocidas:

  • 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

Inicio rápido

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

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

Esto:

  1. Compilará todas las herramientas C++ y Rust
  2. Generará un archivo tar de caso de reproducción
  3. Ejecutará comparaciones que muestran el error
  4. Generará informes detallados en build/output/

Estructura del proyecto

├── 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

El error en detalle

Procesamiento TAR normal

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

Procesamiento TAR extendido PAX (correcto)

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

Procesamiento TAR extendido PAX (con error)

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

Disparador en el mundo real

Docker save crea archivos tar con:

  • Capas grandes (>8 GB) que requieren extensiones PAX
  • Contenido de capas que comienza con cabeceras tar del sistema de archivos (etc/, usr/)
  • Cuando el error se activa, los analizadores extraen contenido del sistema de archivos en lugar de los manifiestos de imagen

Archivos de reproducción generados

  • pax_bug_compact.tar - Caso de reproducción mínimo

Resultados esperados

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

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

Bibliotecas con el error (tokio-tar):

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

La aparición de INNER_FILE indica el error: la biblioteca saltó al contenido de blob.bin y confundió una cabecera tar falsa con una entrada real.

Detalles técnicos

La corrección requiere aplicar las sobrescrituras PAX antes de los cálculos de posición:

// 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);

Licencia

Este código de reproducción se proporciona con fines de investigación de seguridad y divulgación responsable.

Consulte COPYING para conocer la licencia del código fuente original.

Descargar herramienta