TARmageddon в Rust-библиотеке async-tar грозит удалённым выполнением кода

TARmageddon в Rust-библиотеке async-tar грозит удалённым выполнением кода

TARmageddon в Rust-библиотеке async-tar грозит удалённым выполнением кода

Исследователи в области кибербезопасности раскрыли детали серьёзной уязвимости в популярной библиотеке async-tar для языка Rust и её форках, включая tokio-tar. Брешь получила идентификатор CVE-2025-62518 и 8,1 балла по CVSS — это высокий уровень опасности. Эксперты назвали дыру TARmageddon.

По данным компании Edera, которая обнаружила баг в августе 2025 года, уязвимость может привести к удалённому выполнению кода (RCE), если злоумышленнику удастся перезаписать важные файлы — например, конфигурации или компоненты системы сборки.

Async-tar и её производные библиотеки используются в таких проектах, как testcontainers и wasmCloud. Ошибка связана с тем, как библиотека обрабатывает TAR-архивы с расширенными заголовками PAX и ustar. Из-за неправильного определения границ файлов библиотека может «спутать» данные и воспринять часть содержимого архива как новые файлы.

В итоге атакующий может «встроить» во вложенный TAR дополнительные файлы и заставить библиотеку при распаковке перезаписать легитимные данные — что при определённых условиях позволяет выполнить произвольный код.

Особенно тревожно то, что одна из уязвимых библиотек, tokio-tar, фактически больше не поддерживается. Последнее обновление вышло ещё в июле 2023 года, но она по-прежнему активно скачивается через crates.io.

Патча для неё нет, поэтому пользователям советуют перейти на astral-tokio-tar, где в версии 0.5.6 ошибка уже исправлена.

Как объяснил разработчик Astral Уильям Вудрафф, баг связан с тем, как библиотека интерпретирует размеры файлов. В заголовке ustar размер может быть указан как ноль, тогда как расширенный PAX-заголовок содержит правильное значение. В результате библиотека «пропускает» настоящий файл и начинает читать внутренний архив как новый слой.

Это позволяет злоумышленнику спрятать внутри TAR-файла ещё один TAR, который при распаковке перезапишет нужные файлы. Например, подменить pyproject.toml в Python-пакете на вредоносный и изменить процесс сборки.

Edera отметила, что даже безопасные языки вроде Rust не защищают от логических ошибок.

«Rust действительно снижает риск уязвимостей вроде переполнений буфера, но полностью исключить логические баги невозможно. В данном случае проблема именно в логике обработки данных», — заявили исследователи.

Эксперты советуют разработчикам внимательно проверять используемые библиотеки, обновлять зависимости и не полагаться исключительно на язык как гарантию безопасности.

Подпишитесь на новости

Баллы Плюса выпустили за пределы Яндекса, но сумму выберут за вас

Баллы Яндекс Плюса теперь можно тратить не только внутри экосистемы, их принимают магазины, кафе, аптеки и другие партнёры Яндекс Пэй. Возможность доступна более чем у 10 тысяч партнёров. Бонусам разрешили выйти в город, правда, маршрут и правила по-прежнему задаёт Яндекс.

Новую функцию проверила редакция «Код.ру». Для списания нужна действующая подписка Яндекс Плюс.

При покупке на сайте или в приложении необходимо выбрать Яндекс Пэй и включить переключатель «Списать баллы». В обычном магазине — отсканировать QR-код на кассе или показать код в приложении партнёра.

Есть нюанс: самостоятельно указать, сколько баллов потратить, нельзя. Сумму определяет система, а остаток оплачивается картой через Яндекс Пэй.

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

По данным издания, список партнёров планируют расширять, причём в него входят и небольшие магазины. Для подписчиков это больше вариантов потратить накопленное. Для Яндекса — ещё один повод проводить оплату через Пэй.

RSS: Новости на портале Anti-Malware.ru