Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
cve-tarmageddon — CVE-2025-62518: TARmageddon | Kitploit
Инструменты/GitHubGitHub/edera-dev/cve-tarmageddon
Vulnerability AnalysisExploitationFuzzingBinary AnalysisSupply Chain SecurityLearning & Education
GitHubedera-dev/cve-tarmageddon

cve-tarmageddon

CVE-2025-62518: TARmageddon

Репозиторий
19410 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Сайт

Ivy Astronaut

CVE-2025-62518: TARmageddon

Этот репозиторий демонстрирует критическую ошибку в tokio-tar и связанных асинхронных Rust-библиотеках для tar, где переопределения размера в PAX-расширенных заголовках не применяются до расчета позиции следующего заголовка.

Краткое описание ошибки

Корневая причина: При обработке tar-файлов с PAX-расширенными заголовками, которые переопределяют размер файла, библиотека использует восьмеричное поле размера (часто ноль) вместо PAX-переопределения для расчета позиции.

Воздействие: Это заставляет парсер перескакивать в содержимое файла и ошибочно принимать его за tar-заголовки, что приводит к извлечению неправильных файлов.

Известные затронутые библиотеки:

  • 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

Быстрый старт

root@kitploit:~
# Требования: CMake, Rust/Cargo, компилятор C++, системная команда tar

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

Это позволит:

  1. Собрать все C++ и Rust инструменты
  2. Сгенерировать tar-файл для воспроизведения
  3. Запустить сравнения, показывающие ошибку
  4. Сгенерировать подробные отчёты в build/output/

Структура проекта

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

Детали ошибки

Обычная обработка TAR

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

PAX-расширенная обработка TAR (правильная)

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

PAX-расширенная обработка TAR (с ошибкой)

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

Реальный сценарий

Docker save создаёт tar-файлы с:

  • Большими слоями (>8 ГБ), требующими PAX-расширений
  • Содержимым слоёв, начинающимся с заголовков файловой системы (etc/, usr/)
  • При срабатывании ошибки парсеры извлекают содержимое файловой системы вместо манифестов образов

Генерируемые файлы для воспроизведения

  • pax_bug_compact.tar — Минимальный пример для воспроизведения

Ожидаемые результаты

Корректные библиотеки (GNU tar, синхронный крейт tar):

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

Библиотеки с ошибкой (tokio-tar):

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

Появление INNER_FILE указывает на ошибку — библиотека перескочила в содержимое blob.bin и приняла поддельный tar-заголовок за настоящую запись.

Технические детали

Исправление требует применения PAX-переопределений перед расчётом позиции:

root@kitploit:~
// Чтение заголовка
let mut file_size = header.size();

// Применение PAX-переопределений ПЕРЕД расчётом следующей позиции
if let Some(pax_size) = pending_pax.get("size") {
    file_size = pax_size.parse().unwrap();
}

// Теперь расчёт позиции следующего заголовка с использованием эффективного размера
let next_pos = current_pos + 512 + pad_to_512(file_size);

Лицензия

Этот код для воспроизведения предоставлен в целях исследования безопасности и ответственного раскрытия информации.

См. COPYING для лицензии исходного кода.

Скачать инструмент