Rust крејт покренуо злонамерни софтвер у време компилације. 86 минута.
Руст крејт са четири макроа и 260 милиона преузимања додаје једну зависност, а `cargo build` покреће бинарну датотеку странца на вашој машини.
Руст крејт са четири макроа и 260 милиона преузимања додаје једну зависност, а `cargo build` покреће бинарну датотеку странца на вашој машини. 20. август 2026: arrayref 0.3.10 доспева на crates.io зависно од proc-macro1 — не proc-macro2, правог — чија скрипта за изградњу преузима пакет, испушта га у /tmp/rust-setup и покреће га одвојено док се ваш пројекат компајлира. Чисте верзије су повучене тако да вас Cargo-ово упозорење води до затроване. 86 минута касније се брише.
Прочитајте писано издање (енглески) ↗
Шта овај видео покрива
- cargo build покреће бинарну датотеку странца
- Рачуни: Rust Blog, SafeDep, Hacker News
- Ово је The Daily Diff, постмортем
- Временска линија: 02:11 постављање → 07:15 објављено → 08:41 избрисано
- Механизам: build.rs, без Sandbox-а, мамац за повлачење
Преведени транскрипт
Преведено са оригиналне енглеске нарације. Доступни аудио и титлови контролисани су од стране YouTube-а.
cargo build покреће бинарну датотеку странца
0:00 Руст крејт са четири макроа и четвртином милијарде преузимања додаје једну зависност, а cargo build покреће бинарну датотеку странца на вашој машини. 20. август 2026. arrayref 0.3.10 доспева на crates.io зависно од proc-macro1. Не proc-macro2, правог: једна цифра одступа, а његова скрипта за изградњу покреће пакет док се ваш пројекат компајлира. Рустов безбедносни тим га брише 86 минута касније.
Рачуни: Rust Blog, SafeDep, Hacker News
0:22 SafeDep објављује распад. Hacker News: 554 поена. Како се то дешава, зашто му Cargo дозвољава, и ко је крив. Ово је The Daily Diff, постмортем. Два ујутру, UTC.
Ово је The Daily Diff, постмортем
0:33 Налог по имену d-tolney, једно слово од Дејвида Толнаја, који одржава пола Руста, објављује proc-macro1 1.0.106: прави
Временска линија: 02:11 постављање → 07:15 објављено → 08:41 избрисано
0:41 proc-macro2, преименован. Постављање. 07:11. Верзија 1.0.107 додаје скрипту за изградњу, плус base64, TLS и HTTP клијент. За парсер токена. 07:15. Налог одржаваоца поново објављује arrayref као 0.3.10 и повлачи све старије верзије. Cargo штампа: размислите о ажурирању на верзију која није повучена. Једина преостала је затрована.
1:02 Упозорење је мамац. Исте минуте, безбедносна фирма то пријављује Русту. 07:54, RustSec проблем. 08:29, проблем на репозиторијуму; нападач одговара са 0.3.11 и другом злонамерном зависношћу. 08:41, избрисано. Осамдесет шест минута. Зашто? Прво: Cargo изграђује сваку декларисану зависност, позвану или не. Једна линија манифеста је довољна.
1:21 Друго: скрипта за изградњу ради на вашој машини, као ви, са вашим SSH кључевима и cargo
Механизам: build.rs, без Sandbox-а, мамац за повлачење
1:26 токеном, пре него што се ваш код компајлира. Без Sandbox-а, по дизајну: тако крејтови проналазе C библиотеке. Треће: унутра је прави proc-macro2, тако да изградња успева. Пајлоуд: TLS клијент који верује било ком сертификату преузима бинарну датотеку, испушта је у /tmp/rust-setup и покреће је одвојено. На Windows-у заобилази преко wscript-а да би побегао Cargo-овом објекту задатка; изворни коментар то каже. Друга фаза, према RustSec теми: алат за даљински приступ намењен
1:52 прегледачима и крипто новчаницима. Поетски, јер највећи корисници arrayref-а укључују secp256k1 и Solana. git blame. Cargo-ов модел, педесет пет посто: зависности покрећу код на вашој машини у време компилације, без Sandbox-а, а упозорење о повлачењу је водило људе до
git blame — подела
2:07 отрова. Један налог, тридесет: једна акредитив поново објављује крејт коме четвртина милијарде преузимања верује. Цифра један, петнаест: један притисак тастера из Рустовог најпоузданијег крејта, и нико не чита стабло. Радијус експлозије: 2.285 преузимања за 86 минута. Мање од десет посто саобраћаја, јер је већина lockfile-ова држала 0.3.9. crates.io каже да нема доказа о употреби.
Радијус експлозије: 2.285 преузимања
2:27 Двоје људи на RustSec теми се не слажу; један проналази systemd сервис. На Hacker News-у главна тема није о злонамерном софтверу. То је страница крејта, где 0.3.10 сада никада није постојао. Пресуда, постмортем: NEEDS REVIEW. Осамдесет шест минута за брисање, истог дана блог пост, налог закључан: тај део је SHIP IT. Али страница крејта показује да се ништа није десило, cargo audit остаје нем на кешираној
Пресуда + понедељак
2:48 копији, а скрипте за изградњу и даље раде као ви. Понедељак: покрените команду за проналажење Рустовог блога, и третирајте упозорење о повлачењу као питање, а не инструкцију. Пошаљите ми инцидент о коме вам још увек није дозвољено да причате, у коментарима, или на the daily diff dot dev. И то је The Daily Diff за данас. Ја сам Нико из Axrisi. Спајајте одговорно.
Извори
- Rust Blog, "Supply chain attack on arrayref" (security-response, Aug 20, 2026)blog.rust-lang.org
- RUSTSEC-2026-0260 (arrayref)github.com
- RustSec issue #3161 (the original report, IOCs, victims)github.com
- SafeDep technical analysissafedep.io
- GitHub issue on the repo (0.3.11 spotted)github.com
- crates.iocrates.io
- Hacker News (554 points)news.ycombinator.com
- BleepingComputerwww.bleepingcomputer.com



