# Rust crate spustil malvér už pri kompilácii. 86 minút.

Published: 2026-09-15

Š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é.

Canonical: https://thedailydiff.dev/sk/video/2026-09-15-arrayref-proc-macro/

## Č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'

## Kapitoly

- 0:00 cargo build spustí binárny súbor cudzieho človeka
- 0:20 Potvrdenia: Rust Blog, SafeDep, Hacker News
- 0:33 Toto je The Daily Diff, postmortem
- 0:40 Časová os: 02:11 staging → 07:15 publikované → 08:41 zmazané
- 1:25 Mechanizmus: build.rs, žiadny sandbox, návnada 'yank'
- 2:05 git blame — rozdelenie
- 2:25 Rozsah útoku: 2 285 stiahnutí
- 2:45 Verdikt + pondelková čiara

## 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)](https://blog.rust-lang.org/2026/08/20/supply-chain-attack-on-arrayref/) — blog.rust-lang.org
- [RUSTSEC-2026-0260 (arrayref)](https://github.com/rustsec/advisory-db/blob/main/crates/arrayref/RUSTSEC-2026-0260.md) — github.com
- [RustSec issue #3161 (the original report, IOCs, victims)](https://github.com/rustsec/advisory-db/issues/3161) — github.com
- [SafeDep technical analysis](https://safedep.io/arrayref-proc-macro1-rust-build-time-malware/) — safedep.io
- [GitHub issue on the repo (0.3.11 spotted)](https://github.com/droundy/arrayref/issues/33) — github.com
- [crates.io](https://crates.io/crates/arrayref) — crates.io
- [Hacker News (554 points)](https://news.ycombinator.com/item?id=49374269) — news.ycombinator.com
- [BleepingComputer](https://www.bleepingcomputer.com/news/security/hackers-poison-arrayref-rust-crate-to-push-infostealer-malware/) — www.bleepingcomputer.com
