Исследователи кибербезопасности из компании Edera обнаружили критическую уязвимость в библиотеке async-tar для языка Rust и её производных, включая широко используемую tokio-tar. Уязвимость, получившая название TARmageddon и идентификатор CVE-2025-62518, оценивается по шкале CVSS в 8,1 балла, что соответствует высокому уровню серьёзности. Она позволяет злоумышленникам выполнять удалённый код путём перезаписи конфигурационных файлов и захвата критически важных систем сборки.
Детали уязвимости
Проблема возникает из-за ошибки парсинга границ в обработчиках TAR-архивов. Уязвимость позволяет атакующим внедрять скрытые файлы в процесс распаковки архивов с использованием техники, известной как file smuggling. Когда парсер сталкивается с вложенными TAR-файлами, содержащими несоответствующие заголовки PAX (Portable Archive eXchange) и ustar, он некорректно вычисляет границы файлов. В частности, если заголовок PAX объявляет размер файла в 1 МБ, а заголовок ustar указывает 0 байт, парсер ошибочно пропускает 0 байт вместо того, чтобы перейти к следующему элементу архива, игнорируя всё содержимое файла.
Эта десинхронизация приводит к тому, что парсер интерпретирует данные из скрытых внутренних архивов как легитимные записи внешнего архива. Таким образом, злоумышленники могут обойти security-контроли и разместить вредоносные файлы в директориях распаковки. Уязвимость затрагивает крупные проекты, включая uv (менеджер пакетов Python от Astral), testcontainers, wasmCloud и множество других зависимостей. Точный масштаб воздействия остаётся неизвестным из-за широкого распространения tokio-tar в экосистеме Rust.
Особую озабоченность вызывает проблема заброшенного программного обеспечения. Наиболее популярный форк tokio-tar, который насчитывает более 5 миллионов загрузок на crates.io, по всей видимости, больше не поддерживается. В отличие от стандартных случаев раскрытия уязвимостей, где единое исправление распространяется на всех пользователей, команде Edera пришлось столкнуться с фрагментированной экосистемой форков без чёткой структуры поддержки. Исследователи провели децентрализованный процесс disclosure, координируя выпуск исправлений для async-tar (исходная библиотека), tokio-tar (популярный, но неподдерживаемый форк), krata-tokio-tar (архивирован) и astral-tokio-tar (активно поддерживается Astral).
При отсутствии контактной информации по вопросам безопасности исследователям пришлось искать сопровождающих через социальную инженерию и изучение сообщества, после чего координировать одновременный выпуск исправлений в течение строгого 60-дневного эмбарго. Атакующие могут использовать TARmageddon несколькими способами. Атака на перехват системы сборки Python может включать загрузку вредоносного пакета в PyPI со скрытым внутренним TAR-архивом, содержащим скомпрометированную конфигурацию сборки, что приводит к выполнению удалённого кода во время установки пакета на машинах разработчиков и в CI-системах.
Аналогичным образом, фреймворки для тестирования контейнеров могут быть обмануты для обработки опасных слоёв образов, что приводит к появлению неожиданных файлов в тестовых средах. Уязвимость также позволяет обходить системы безопасности, когда отдельные этапы сканирования и распаковки позволяют атакующим протащить неподтверждённые файлы мимо систем одобрения. Активно поддерживаемые форки, включая astral-tokio-tar, уже получили исправления, и команда Edera опубликовала патчи для затронутых версий.
Однако tokio-tar остаётся неисправленным из-за прекращения поддержки. Пользователям следует немедленно обновиться до исправленных версий или перейти на активно поддерживаемые альтернативы, такие как astral-tokio-tar. Форк Edera krata-tokio-tar будет архивирован для консолидации усилий и снижения путаницы в экосистеме. Эксперты рекомендуют организациям провести инвентаризацию зависимостей и обеспечить применение всех доступных обновлений безопасности для предотвращения потенциальных атак через уязвимость TARmageddon.
Ссылки
- https://www.cve.org/CVERecord?id=CVE-2025-62518
- https://edera.dev/stories/tarmageddon
- https://github.com/edera-dev/cve-tarmageddon
- https://github.com/astral-sh/tokio-tar/commit/22b3f884adb7a2adf1d3a8d03469533f5cbc8318
- https://github.com/astral-sh/uv/security/advisories/GHSA-w476-p2h3-79g9
- https://github.com/astral-sh/tokio-tar/security/advisories/GHSA-j5gw-2vrg-8fgx