Rust crate spustil malvér už pri kompilácii. 86 minút.
Štyri-makro Rust crate s 260 miliónmi stiahnutí pridá jednu závislosť a `cargo build` spustí na vašom počítači binárny súbor cudzieho človeka.
Štyri-makro Rust crate s 260 miliónmi stiahnutí pridá jednu závislosť a `cargo build` spustí na vašom počítači binárny súbor cudzieho človeka. 20. augusta 2026: arrayref 0.3.10 pristane na crates.io, závisí od proc-macro1 – nie proc-macro2, toho skutočného – ktorého build skript stiahne payload, uloží ho do /tmp/rust-setup a spustí ho odpojeného, zatiaľ čo sa váš projekt kompiluje. Čisté verzie sú stiahnuté, takže vlastné varovanie Cargo vás navedie na otrávenú. 86 minút neskôr je odstránené.
Prečítajte si písanú edíciu (anglicky) ↗
Čo toto video pokrýva
- cargo build spustí binárny súbor cudzieho človeka
- Potvrdenia: Rust Blog, SafeDep, Hacker News
- Toto je The Daily Diff, postmortem
- Časová os: 02:11 staging → 07:15 publikované → 08:41 zmazané
- Mechanizmus: build.rs, žiadny sandbox, návnada 'yank'
Preložený prepis
Preložené z pôvodného anglického rozprávania. Dostupný zvuk a titulky sú kontrolované službou YouTube.
cargo build spustí binárny súbor cudzieho človeka
0:00 Štyri-makro Rust crate s štvrť miliardou stiahnutí pridá jednu závislosť, a cargo build spustí binárny súbor cudzieho človeka na vašom počítači. 20. augusta 2026. arrayref 0.3.10 pristane na crates.io, závisí od proc-macro1. Nie proc-macro2, toho skutočného: jeden znak rozdiel, a jeho build skript spustí payload, zatiaľ čo sa váš projekt kompiluje. Tím pre bezpečnosť Rustu ho zmaže o 86 minút neskôr.
Potvrdenia: Rust Blog, SafeDep, Hacker News
0:22 SafeDep publikuje rozbor. Hacker News: 554 bodov. Ako sa to stane, prečo to Cargo povolí a kto je vinný. Toto je The Daily Diff, postmortem. Dve ráno, UTC.
Toto je The Daily Diff, postmortem
0:33 Účet s názvom d-tolney, o jedno písmeno od Davida Tolnaya, ktorý udržiava polovicu Rustu, publikuje proc-macro1 1.0.106: skutočný
Časová os: 02:11 staging → 07:15 publikované → 08:41 zmazané
0:41 proc-macro2, premenovaný. Staging. 07:11. Verzia 1.0.107 pridá build skript, plus base64, TLS a HTTP klienta. Pre tokenový parser. 07:15. Účet správcu opätovne publikuje arrayref ako 0.3.10 a stiahne každú staršiu verziu. Cargo vypíše: zvážte aktualizáciu na verziu, ktorá nie je stiahnutá. Jediná, ktorá zostala, je tá otrávená.
1:02 Varovanie je návnada. V tej istej minúte to bezpečnostná firma nahlási Rustu. 07:54, problém RustSec. 08:29, problém v repozitári; útočník odpovie verziou 0.3.11 a druhou škodlivou závislosťou. 08:41, zmazané. Osemdesiatšesť minút. Prečo? Jedno: Cargo zostavuje každú deklarovanú závislosť, či už je volaná alebo nie. Jeden riadok v manifeste stačí.
1:21 Dva: build skript beží na vašom počítači, ako vy, s vašimi SSH kľúčmi a cargo
Mechanizmus: build.rs, žiadny sandbox, návnada 'yank'
1:26 tokenom, predtým, ako sa váš kód skompiluje. Žiadny sandbox, zámerne: takto crates nachádzajú C knižnice. Tri: vo vnútri je skutočný proc-macro2, takže build je úspešný. Payload: TLS klient, ktorý dôveruje akémukoľvek certifikátu, stiahne binárny súbor, uloží ho do /tmp/rust-setup a spustí ho odpojeného. Na Windows sa to obchádza cez wscript, aby unikol objektu job Cargo; zdrojový komentár to hovorí. Druhá fáza, podľa vlákna RustSec: nástroj na vzdialený prístup zameraný na
1:52 prehliadače a kryptopeňaženky. Pôvabné, keďže medzi najväčších používateľov arrayref patria secp256k1 a Solana. git blame. Model Cargo, päťdesiatpäť percent: závislosti spúšťajú kód na vašom počítači počas kompilácie, bez sandboxu, a varovanie 'yank' viedlo ľudí k
git blame — rozdelenie
2:07 jedu. Jeden účet, tridsať: jedno poverenie opätovne publikuje crate, ktorému dôveruje štvrť miliardy stiahnutí. Jednotka, pätnásť: jeden stlačenie klávesy od najdôveryhodnejšieho crate Rustu, a nikto nečíta strom. Rozsah útoku: 2 285 stiahnutí za 86 minút. Menej ako desať percent prevádzky, pretože väčšina lockfile obsahovala 0.3.9. crates.io hovorí, že žiadny dôkaz použitia.
Rozsah útoku: 2 285 stiahnutí
2:27 Dvaja ľudia vo vlákne RustSec nesúhlasia; jeden nájde službu systemd. Na Hacker News sa hlavné vlákno netýka malvéru. Je to stránka crate, kde 0.3.10 teraz nikdy neexistovala. Verdikt, postmortem: NEEDS REVIEW. Osemdesiatšesť minút na zmazanie, blogový príspevok v ten istý deň, účet zablokovaný: táto časť je SHIP IT. Ale stránka crate neukazuje, že by sa nič nestalo, cargo audit mlčí o uloženej
Verdikt + pondelková čiara
2:48 kópii a build skripty stále bežia ako vy. Pondelok: spustite príkaz 'find' z Rust blogu a varovanie 'yank' berte ako otázku, nie ako inštrukciu. Pošlite mi incident, o ktorom stále nesmiete hovoriť, do komentárov, alebo na daily diff dot dev. A to je pre dnes The Daily Diff. Som Niko z Axrisi. Spojte zodpovedne.
Zdroje
- 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



