TARmageddon: критическая уязвимость в библиотеках Rust угрожает системам сборки

vulnerability

Исследователи кибербезопасности из компании 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.

Ссылки

Комментарии: 0