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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/airineiandrei/tarmageddon-cve-2025-62518-
Анализ уязвимостейЭксплуатацияАнализ вредоносных программБезопасность Цепочки ПоставокСтатьи и ИсследованияОбучение и Образование
GitHubairineiandrei/tarmageddon-cve-2025-62518-

Tarmageddon-CVE-2025-62518-

PoC для CVE-2025-62518, демонстрирующий протаскивание tar-архивов через разбор PAX-заголовков в tokio-tar, создание вредоносных полезных нагрузок и уязвимого экстрактора для демонстрации инъекции в цепочку поставок.

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

Популярное

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

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

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

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

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

Tarmageddon CVE-2025-62518

Видео: https://youtu.be/EYBB4BHsp9E

Директории репозитория

  • vulnerable-extract минимальный воспроизводимый пример, принимает путь в качестве аргумента и извлекает этот файл в ./output
  • malicious-payload создаёт простой архив malicious.tar с примером скрытого содержимого, комментарии объясняют, что делается шаг за шагом и блок за блоком

Воспроизведение

Используйте предоставленный скрипт воспроизведения или сделайте это вручную

Запустите malicious-payload, чтобы сгенерировать пейлоад

malicious.tar

Передача этого файла нашему приложению vulnerable-extract даёт:

root@kitploit:~
/vulnerable-extract$ ll output/
total 12
drwxrwxr-x 2 airinei airinei 4096 Jan 19 22:40 ./
drwxrwxr-x 5 airinei airinei 4096 Jan 19 22:40 ../
-rw-rw-r-- 1 airinei airinei    0 Jan  1  1970 benign_file.txt
-rw-rw-r-- 1 airinei airinei   18 Jan  1  1970 sh_profile_hijack

В то время как запуск предоставленной ОС утилиты tar (в данном случае (GNU tar) 1.35) даёт:

root@kitploit:~
malicious-payload$ tar -tvf malicious.tar
---------- 0/0            1024 1970-01-01 02:00 benign_file.txt

Обратите внимание, что она видит размер файла 1024

Альтернативно, использование astral-tokio-tar 0.5.6 вместо заброшенного tokio-tar 0.3.1 корректно извлекает архив.

Описание

CVE-2025-62518 (TARmageddon) — это уязвимость безопасности, найденная в библиотеке tokio-tar на Rust (уязвимость Rust 😮). Это логическая ошибка в том, как обрабатываются заголовки формата tar, позволяющая злоумышленнику скрывать файлы.

Ошибка находится в логике обработки расширенных заголовков PAX. В архиве TAR существуют разные типы заголовков:

  • USTAR: стандартный заголовок, содержащий имя файла, права доступа и размер.
  • PAX (тип x): расширенный заголовок, используемый для предоставления метаданных (например, очень большого размера файла) для следующего файла в архиве.

Когда присутствует заголовок PAX, анализатор должен определить фактический размер файла, отдавая приоритет метаданным PAX перед стандартным заголовком USTAR.

Но ПОЧЕМУ существуют 2 типа заголовков с приоритетами для, казалось бы, одного и того же? Потому что формат TAR старый (стандартизирован в 1988), и USTAR имеет свои ограничения (размер до 8 ГБ, имя файла до 256 символов). Это проблема, поэтому заголовок PAX был добавлен в 2001 году для поддержки больших файлов и более длинных имён.

В уязвимых версиях tokio-tar анализатор корректно использует размер из заголовка PAX для чтения содержимого файла, но неверно использует размер из заголовка USTAR для определения начала заголовка следующего файла.

Суть проблемы — несоответствие указателей. Когда уязвимая библиотека обрабатывает файл, она использует два разных внутренних "указателя" для чтения потока:

  1. Указатель содержимого: отвечает за чтение фактических байтов файла и запись их на диск.
  2. Указатель анализатора: отвечает за пропуск данных файла для поиска следующего заголовка файла.

В обычном архиве эти два указателя согласованы. В TARmageddon мы заставляем их разойтись. Устанавливая размер PAX равным 1024, а размер USTAR равным 0, мы создаём парадокс:

  • Указатель содержимого читает 1024 байта и помещает их в benign_file.txt.
  • Указатель анализатора видит 0 в заголовке USTAR и думает: "Я уже в конце файла." Он остаётся ровно на том же месте.

Следовательно, указатель анализатора обрабатывает данные внутри 1024-байтового блока как следующий набор инструкций. Если эти данные выглядят как действительный заголовок TAR, библиотека "обнаружит" и извлечёт второй файл, который технически не существует согласно глобальной структуре архива.

Скрытый пейлоад:

Пейлоад создаётся как последовательность 512-байтовых блоков. Вот структура, используемая в генераторе malicious-payload:

БлокРольОписание
1 и 2Метаданные PAXУтверждает, что следующий файл имеет длину 1024 байта.
3Базовый заголовокbenign.txt. Критически важно: устанавливает размер в 0.
4Скрытый заголовокbackdoor.sh. Спрятан внутри "области данных".
5Скрытые данныеВредоносное содержимое (например, псевдонимы оболочки).
6 и 7EOFСтандартное завершение нулевыми блоками.

Поскольку стандартные инструменты (например, GNU tar) корректно следуют размеру PAX, они видят блоки 4 и 5 как безвредные двоичные данные, принадлежащие benign_file.txt. Они никогда не "выполняют" заголовок в блоке 4.

Почему это уязвимость и CVSS 8.1?

Как можно эксплуатировать эту уязвимость в крейте и почему файл, скрытый в архиве, имеет значение?

Внедрение в цепочку поставок:

Злоумышленник протаскивает вредоносные файлы в систему сборки. Извлечение такого архива для разработки или на CI-машине может перезаписать легитимные файлы сборки, скомпрометировать эту машину и даже обмануть систему сборки, заставив её подписать вредоносные файлы.

Обход безопасности (WAF/AV):

Сканер проверяет .tar, сканируя его только в правильном режиме, но нежелательные файлы могут присутствовать при извлечении, хотя не были отсканированы

Вдохновлено этим описанием

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