Уязвимость в крейте tar позволяла вредоносному пакету менять права на любые каталоги при сборке
21.03.2026Команда реагирования на проблемы безопасности Rust сообщила об уязвимости CVE-2026-33056 в стороннем крейте tar, который Cargo использует для распаковки пакетов при сборке. Зловредный крейт при распаковке мог менять права доступа на произвольные каталоги файловой системы.
Что это значит на практике
Сборка проекта в непрерывной сборке — это запуск кода из подозрительного источника с широкими правами. В описанном случае пакет получал возможность выставить права на каталоги по своему выбору — включая те, что за пределами каталога сборки.
Обратите внимание на механизм: уязвимость не в исполняемом коде пакета, а в том, как Cargo распаковывает его содержимое. То есть обзор исходного кода крейта здесь не помогает.
Что сделано на crates.io
13 марта загрузка эксплуатирующих крейтов была заблокирована, и все когда-либо опубликованные крейты были проверены. Эксплуатации на crates.io не обнаружено.
Отдельно: уязвимость закрыта обновлением крейта tar до версии 0.4.45, и это попало в Cargo из Rust 1.94.1.
Кто всё ещё уязвим
Пользователи сторонних реестров — Artifactory, Nexus, Verdaccio и подобных — на старых версиях Cargo. Исправление им нужно брать у поставщика своего реестра; в crates.io оно развёрнуто уже.
Это различие существенно: рассчитывать на то, что «против публичного реестра всё устранили», можно только если действительно пользуешься публичным.
Что делать
Обновить Cargo до 1.94.1 или новее. Сборка в публичных пулах, где каталоги разделяются между заданиями, требует особого внимания: права на каталоги, которые пакет мог переписать, стоит считать потенциально скомпрометированными.
Обе уязвимости в tar — CVE-2026-33055 и CVE-2026-33056 — закрываются обновлением крейта до 0.4.45.
Оригинал
Security advisory for Cargo (CVE-2026-33056) от 21 марта 2026 года
Упоминаний: 1 · Просмотров: 3