Разработчику, который собирал свой проект утром 20 августа, Cargo написал ровно одну строку:
warning: package `arrayref v0.3.9` in Cargo.lock is yanked in registry `crates-io`, consider updating to a version that is not yanked
Совет корректный: отозванная версия – это та, которую автор публично объявил негодной, и сидеть на ней не надо. Крейт при этом чужой и транзитивный, в дерево он приехал через winit или blake3, руками его никто не выбирал и в глаза не видел. Разработчик сделал то, что советует инструмент, – cargo update -p arrayref. Резолвер выбрал единственный современный релиз, который на тот момент не был отозван. Через несколько секунд компиляции на машине заработал бэкдор с удалённым доступом.
Остальные версии отозвал тот же аккаунт, который двадцатью четырьмя секундами ранее опубликовал этот единственный оставшийся релиз. Предупреждение безопасности было здесь не побочным эффектом атаки, а её каналом доставки – и исследователь, первым заведший тикет в RustSec, попался ровно так и написал об этом в первом же сообщении.
Эта статья доступна только подписчикам. Оформите подписку, чтобы получить доступ ко всем премиум статьям.
Оформить подписку →Автор: hacker@shifry.local