Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
cve-tarmageddon — Demonstration of CVE-2025-62518: a critical PAX extended header size override bug in tokio-tar and async Rust tar libraries, with reproduction tools and blast radius analysis. | Kitploit
Tools/GitHubGitHub/edera-dev/cve-tarmageddon
Vulnerability AnalysisExploitationFuzzingBinary AnalysisSupply Chain SecurityLearning & Education
GitHubedera-dev/cve-tarmageddon

cve-tarmageddon

Demonstration of CVE-2025-62518: a critical PAX extended header size override bug in tokio-tar and async Rust tar libraries, with reproduction tools and blast radius analysis.

View Repository
194310 months agoNot yet reviewed
Website

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

Ivy Astronaut

CVE-2025-62518: TARmageddon

This repository demonstrates a critical bug in tokio-tar and related async Rust tar libraries where PAX extended header size overrides are not applied before calculating the next header position.

Bug Summary

Root Cause: When processing tar files with PAX extended headers that override the file size, the library uses the octal size field (often zero) instead of the PAX override for position calculations.

Impact: This causes the parser to jump into file content and mistake it for tar headers, leading to extraction of wrong files.

Known Affected Libraries:

  • 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
  • Quick Start

    root@kitploit:~
    # Requirements: CMake, Rust/Cargo, C++ compiler, system tar command
    
    cmake -S . -B build
    cmake --build build --target generate_report
    

    This will:

    1. Build all C++ and Rust tools
    2. Generate a repro case tar file
    3. Run comparisons showing the bug
    4. Generate detailed reports in build/output/

    Project Structure

    root@kitploit:~
    ├── 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
    

    The Bug in Detail

    Normal TAR Processing

    root@kitploit:~
    Header -> Content (size from octal field) -> Next Header
    

    PAX Extended TAR Processing (Correct)

    root@kitploit:~
    PAX Header (size=1024) -> File Header (octal size=0) -> Content (1024 bytes) -> Next Header
    

    PAX Extended TAR Processing (Buggy)

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

    Real-World Trigger

    Docker save creates tar files with:

    • Large layers (>8GB) requiring PAX extensions
    • Layer content starting with filesystem tar headers (etc/, usr/)
    • When the bug triggers, parsers extract filesystem content instead of image manifests

    Reproduction Files Generated

    • pax_bug_compact.tar - Minimal reproduction case

    Expected Results

    Correct libraries (GNU tar, sync tar crate):

    root@kitploit:~
    normal.txt -> blob.bin -> marker.txt
    

    Buggy libraries (tokio-tar):

    root@kitploit:~
    normal.txt -> blob.bin -> INNER_FILE -> marker.txt
    

    The appearance of INNER_FILE indicates the bug - the library jumped into blob.bin content and mistook a fake tar header for a real entry.

    Technical Details

    The fix requires applying PAX overrides before position calculations:

    root@kitploit:~
    // 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);
    

    License

    This reproduction code is provided for security research and responsible disclosure purposes.

    See COPYING for original source code license.

    Download Tool