В библиотеках Rust для TAR найдена опасная уязвимость TARmageddon Обложка: Skyread

В библиотеках Rust для TAR найдена опасная уязвимость TARmageddon

Новости
Главное:

  • В библиотеке async-tar на Rust обнаружена уязвимость CVE-2025-62518 под названием TARmageddon, позволяющая распаковывать вложенные архивы без должной проверки.
  • Проблема затрагивает также форки async-tar (tokio-tar, krata-tokio-tar, astral-tokio-tar) и утилиты на их основе, включая пакетный менеджер uv и инструменты тестирования контейнеров.
  • Уязвимость связана с некорректной обработкой размеров файлов в заголовках tar-архивов формата PAX, что может использоваться для обхода проверок и замены распаковываемых файлов на вредоносные.

Специалисты в области безопасности выявили критическую уязвимость CVE-2025-62518, известную под кодовым названием TARmageddon, в библиотеке async-tar, написанной на языке программирования Rust. Эта библиотека используется для чтения и записи архивов формата tar, популярных в экосистеме Linux и при работе с различным программным обеспечением.

Суть проблемы заключается в некорректной обработке заголовков файлов в архиве. В формате PAX каждый файл в архиве имеет два заголовка — классический ustar и расширенный PAX. Уязвимость возникает из-за того, что библиотека при распаковке ориентировалась на размер файла, указанный в устаревшем ustar-заголовке, игнорируя актуальные данные из PAX-заголовка. При нулевом размере, указанном в ustar-заголовке, содержимое следующего файла в архиве воспринималось как новые заголовки, что позволяло внедрять во вложенные архивы файлы, обходя стандартные проверки безопасности.

Помимо самой async-tar, проблема затронула несколько её форков — tokio-tar, krata-tokio-tar, astral-tokio-tar — и утилиты, построенные на их базе. Среди них пакетный менеджер uv, предназначенный для Python, а также популярные инструменты для работы с контейнерами и WebAssembly, такие как testcontainers и wasmCloud. За последние три месяца только одна библиотека async-tar была загружена свыше 1,3 миллиона раз, а tokio-tar — более 2,2 миллиона раз, что свидетельствует о широком использовании уязвимых компонентов.

Исследователи предоставили пример создания специально сформированного архива с нулевым размером в ustar-заголовке и корректным размером в PAX, позволяющего обойти системы проверки и извлечь вложенные архивы с другим содержимым. Подобные манипуляции могут приводить к замене файлов конфигурации или объектов сборки и, как следствие, к исполнению вредоносного кода во время установки или развертывания программного обеспечения.

Угроза получила высокой оценку опасности — 8.1 из 10, поскольку позволяет нарушить целостность распаковываемых данных и обойти механизмы безопасной проверки архивов. При этом в некоторых конкретных случаях, например в пакетном менеджере uv, уязвимость признана менее критичной, так как при наличии контроля над исходным архивом более простые способы атаки остаются приоритетными.

Разработчиками уже опубликованы обновления, устраняющие уязвимость в некоторых форках и утилитах — tokio-tar версии 0.5.6 и uv версии 0.9.5. Для остальных затронутых проектов опубликованы патчи, однако ещё требуется время для их внедрения в стабильные релизы.

Эксперты рекомендуют всем пользователям и разработчикам, использующим библиотеки для работы с tar-архивами на Rust, оперативно обновить ПО и внимательно проверять источники архивов, чтобы минимизировать риски эксплуатации данной уязвимости. Теоретически, злоумышленники могут воспользоваться TARmageddon для обхода автоматических систем безопасности, загрузки вредоносных пакетов в публичные репозитории и последующего заражения рабочих сред разработчиков.

Tagged