+− THE DAILY DIFFdev & AI news
NEEDS REVIEW

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

  1. Rust Blog, "Supply chain attack on arrayref" (security-response, Aug 20, 2026)blog.rust-lang.org
  2. RUSTSEC-2026-0260 (arrayref)github.com
  3. RustSec issue #3161 (the original report, IOCs, victims)github.com
  4. SafeDep technical analysissafedep.io
  5. GitHub issue on the repo (0.3.11 spotted)github.com
  6. crates.iocrates.io
  7. Hacker News (554 points)news.ycombinator.com
  8. BleepingComputerwww.bleepingcomputer.com

Povezani videozapisi