Rust biblioteka je pokrenula malver tokom kompilacije. 86 minuta.
Rust biblioteka sa četiri makroa i 260 miliona preuzimanja dodaje jednu zavisnost, a `cargo build` pokreće binarni fajl nepoznate osobe na vašem računaru.
Rust biblioteka sa četiri makroa i 260 miliona preuzimanja dodaje jednu zavisnost, a `cargo build` pokreće binarni fajl nepoznate osobe na vašem računaru. 20. avgust 2026: arrayref 0.3.10 se pojavljuje na crates.io, zavisno o proc-macro1 — ne proc-macro2, onom pravom — čija skripta za izgradnju preuzima malver, stavlja ga u /tmp/rust-setup i pokreće ga odvojeno dok se vaš projekat kompajlira. Čiste verzije su povučene tako da vas Cargovo vlastito upozorenje vodi do zatrovane. 86 minuta kasnije je izbrisana.
Pročitajte pisano izdanje (engleski) ↗
Šta ovaj video pokriva
- cargo build pokreće binarni fajl nepoznate osobe
- Dokazi: Rust Blog, SafeDep, Hacker News
- Ovo je The Daily Diff, postmortem
- Vremenska linija: 02:11 staging → 07:15 objavljeno → 08:41 izbrisano
- Mehanizam: build.rs, bez sandboksa, mamac povlačenja
Prevedeni transkript
Prevedeno iz originalne engleske naracije. Dostupan zvuk i titlovi kontroliše YouTube.
cargo build pokreće binarni fajl nepoznate osobe
0:00 Rust biblioteka sa četiri makroa i četvrt milijarde preuzimanja dodaje jednu zavisnost, a cargo build pokreće binarni fajl nepoznate osobe na vašem računaru. 20. avgust 2026. arrayref 0.3.10 se pojavljuje na crates.io, zavisno o proc-macro1. Ne proc-macro2, onaj pravi: jedna cifra razlike, a njegova skripta za izgradnju pokreće malver dok se vaš projekat kompajlira. Rust-ov sigurnosni tim ga briše 86 minuta kasnije.
Dokazi: Rust Blog, SafeDep, Hacker News
0:22 SafeDep objavljuje analizu. Hacker News: 554 poena. Kako se to dešava, zašto Cargo to dozvoljava i ko je kriv. Ovo je The Daily Diff, postmortem. Dva ujutru, UTC.
Ovo je The Daily Diff, postmortem
0:33 Nalog pod nazivom d-tolney, jedno slovo od David Tolnay, koji održava pola Rust-a, objavljuje proc-macro1 1.0.106: pravi
Vremenska linija: 02:11 staging → 07:15 objavljeno → 08:41 izbrisano
0:41 proc-macro2, preimenovan. Staging. 07:11. Verzija 1.0.107 dodaje skriptu za izgradnju, plus base64, TLS i HTTP klijent. Za parser tokena. 07:15. Račun održavaoca ponovo objavljuje arrayref kao 0.3.10 i povlači sve starije verzije. Cargo ispisuje: razmislite o ažuriranju na verziju koja nije povučena. Jedina preostala je zatrovana.
1:02 Upozorenje je mamac. Isti minut, sigurnosna firma to prijavljuje Rustu. 07:54, RustSec problem. 08:29, problem na repozitorijumu; napadač odgovara sa 0.3.11 i drugom zlonamjernom zavisnošću. 08:41, izbrisano. Osamdeset šest minuta. Zašto? Prvo: Cargo gradi svaku deklarisanu zavisnost, pozvanu ili ne. Jedna linija manifesta je dovoljna.
1:21 Drugo: skripta za izgradnju se pokreće na vašem računaru, kao vi, sa vašim SSH ključevima i cargo
Mehanizam: build.rs, bez sandboksa, mamac povlačenja
1:26 tokenom, prije nego što se vaš kod kompajlira. Bez sandboksa, po dizajnu: tako biblioteke pronalaze C biblioteke. Treće: unutra je pravi proc-macro2, tako da izgradnja uspijeva. Malver: TLS klijent koji vjeruje bilo kojem certifikatu preuzima binarni fajl, stavlja ga u /tmp/rust-setup i pokreće ga odvojeno. Na Windows-u se zaobilazi preko wscript-a kako bi se izbjegao Cargov job objekat; izvorni komentar to kaže. Druga faza, prema RustSec temi: alat za daljinski pristup namijenjen
1:52 preglednicima i kripto novčanicima. Poetično, jer najveći korisnici arrayref-a uključuju secp256k1 i Solanu. git blame. Cargov model, pedeset pet posto: zavisnosti pokreću kod na vašem računaru tokom kompilacije, bez sandboksa, a upozorenje o povlačenju je ljude odvelo na
git blame — podjela
2:07 otrov. Jedan nalog, trideset: jedan akreditiv ponovo objavljuje biblioteku kojoj četvrt milijarde preuzimanja vjeruje. Cifra jedan, petnaest: jedan pritisak tipke iz Rustove najpouzdanije biblioteke, a niko ne čita stablo. Radijus eksplozije: 2,285 preuzimanja za 86 minuta. Manje od deset posto saobraćaja, jer većina lockfajlova je sadržavala 0.3.9. crates.io kaže da nema dokaza o korištenju.
Radijus eksplozije: 2,285 preuzimanja
2:27 Dvije osobe na RustSec temi se ne slažu; jedna pronalazi systemd servis. Na Hacker News-u glavna tema nije o malveru. To je stranica biblioteke, gdje 0.3.10 sada nikada nije postojala. Presuda, postmortem: NEEDS REVIEW. Osamdeset šest minuta za brisanje, blog objava istog dana, nalog zaključan: taj dio je SHIP IT. Ali stranica biblioteke ne pokazuje da se ništa nije dogodilo, cargo audit šuti o keširanoj
Presuda + linija za ponedjeljak
2:48 kopiji, a skripte za izgradnju se i dalje pokreću kao vi. Ponedjeljak: pokrenite Rust blogovu naredbu za pretraživanje i tretirajte upozorenje o povlačenju kao pitanje, a ne uputstvo. Pošaljite mi incident o kojem još uvijek ne smijete govoriti, u komentarima, ili na the daily diff dot dev. I to je diff za danas. Ja sam Niko iz Axrisi. Spajajte odgovorno.
Izvori
- 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



