we_are_coded.by CODE · Светът, декодиран
EN
Rust

Отровеният arrayref е живял 86 минути в crates.io. Стигало е да компилираш веднъж

Rust BlogСигурност

На 20 август три пакета на един и същ автор в регистъра на Rust излизат с нова зависимост, чийто build скрипт тегли и пуска зловреден товар по време на компилация. Изтрити са за час и половина до два часа. Акаунтът на поддържащия е заключен - екипът на Rust смята, че компютърът или данните му за достъп са превзети.

Накратко
  • arrayref@0.3.10, internment@0.8.7 и append-only-vec@0.1.9 излизат с нова зависимост proc-macro1, чийто build скрипт тегли зловреден товар при компилация.
  • Онлайн са между 86 и 107 минути и са изтрити от crates.io; акаунтът на автора е заключен, CVE номер няма.
  • Проверката минава през ~/.cargo/registry/cache: там се вижда дали машината изобщо е строила отровеното.
Проверено на21 август 2026Отговорен редакторЦветелин ИвановКак работимМетод · Корекции

Осемдесет и шест минути. Толкова е стоял отровеният arrayref в публичния регистър на Rust, преди да го изтрият. Звучи като добра новина.

Не е. Този пакет не чака да пуснеш програмата, за да свърши работа. Той се задейства, докато компилираш. Всеки, който е строил проект в четвъртък сутрин с новата версия, вече е пуснал чужд двоичен файл на машината си - и изтриването от регистъра не го отменя.

Фактите: на 20 август 2026 в 07:15 UTC екипът за реакция при сигурност на Rust получава сигнал, че пакетът proc-macro1 е злонамерен, и потвърждава, че носи build скрипт, който тегли зловреден товар. proc-macro1 и още пет подобни имена (proc-macro-en, aovine, arone, aronenao, tinymember) са изтрити от crates.io. Оказва се, че популярният arrayref е бил преиздаден скоро преди това и накаран да зависи от proc-macro1; същото важи за два други пакета на същия автор. Отровените версии и времето, което са били онлайн: arrayref@0.3.10 - публикуван в 07:15:00 UTC, изтрит в 08:41:40 UTC, 86 минути; internment@0.8.7 - публикуван в 07:34:07, изтрит в 09:04:11, 90 минути; append-only-vec@0.1.9 - публикуван в 07:37:49, изтрит в 09:25:24, 107 минути. Акаунтът на автора е заключен като предпазна мярка. Екипът на Rust пише, че не смятат автора за злонамерен, но компютърът или данните му за достъп по всяка вероятност са компрометирани. Първи сигнализира изследователският екип на Nextron Systems GmbH. По данни на crates.io arrayref има около 246 милиона сваляния за целия си живот. CVE номер по случая няма - това не е грешка в код, а превзет акаунт. Източник: блогът на Rust, 20.08.2026.

Компилацията е моментът

В Rust всеки пакет може да носи build скрипт - парче код, което се изпълнява преди същинското строене, за да подготви нещо. Легитимна работа. И пълен достъп до машината в момент, в който никой не гледа, защото всички гледат резултата от компилацията, не пътя дотам.

Затова името proc-macro1 не е случайно. Истинският пакет се казва proc-macro2 и стои под половината екосистема. Едно око, което минава през списък със зависимости в седем сутринта, вижда позната дума и продължава нататък.

Не е трябвало да пускаш нищо в производство. Стигало е да строиш.

Какво казват изследователите

По данни на Wiz товарът от втора степен работи на Linux, Windows и macOS, събира име на машина, потребител и списък с инсталирани програми, бърка в профилите на Chrome, Brave и Edge за запазени пароли и се обажда на команден сървър по HTTPS. Същата фирма казва, че намира arrayref в над 35 на сто от средите, които преглежда, и в три четвърти от тези, където изобщо се пише на Rust.

Wiz посочва и съвпадения със севернокорейски кампании: адресът, на който се обажда товарът, е същият като в кампанията Mastra, която Microsoft приписва на групата Sapphire Sleet. Това е твърдение на изследователи, не установен факт. Тежи, но е посока за следствие.

Провери кеша, не проекта

Тук няма какво да обновяваш. Отровените версии вече ги няма в регистъра и списъкът ти със зависимости днес сочи чисти. Въпросът е дали машината е компилирала в онези два часа, а отговорът стои в ~/.cargo/registry/cache - екипът на Rust дава готова команда, която търси точно тези файлове по име.

Намериш ли дори един от тях, машината е строила отровения код. Оттам нататък се сменя всичко, до което тя има достъп: ключове, токени, пароли в браузъра.

Реакцията беше бърза и това има стойност - за следващия, който би посегнал към пакета. За компилиралия в четвъртък сутрин тя не променя нищо.

Визуалът към статията е генериран код-арт, без чужди изображения.
Последвай ниFacebookLinkedIn
Официални първоизточници
→Rust Blog - Supply chain attack on arrayref, 20.08.2026→crates.io - страницата на arrayref (брой сваляния)→Wiz - Rust supply chain attack on arrayref: significant overlap with DPRK campaigns, 20.08.2026
Оригинал: https://wearecoded.com/articles/rust-arrayref-supply-chain.html
СподелиFacebookXLinkedInTelegramWhatsApp
← Обратно към всички новини