# Een Rust-crate draaide malware tijdens compilatie. 86 minuten.

Published: 2026-09-15

Een Rust-crate met vier macro's en 260 miljoen downloads voegt één afhankelijkheid toe, en \`cargo build\` draait de binary van een vreemde op jouw machine. 20 augustus 2026: arrayref 0.3.10 verschijnt op crates.io, afhankelijk van proc-macro1 — niet proc-macro2, de echte — waarvan het buildscript een payload downloadt, deze in /tmp/rust-setup plaatst en deze losgekoppeld opstart terwijl jouw project compileert. De schone versies worden ingetrokken, dus Cargo's eigen waarschuwing leidt je naar de besmette. 86 minuten later wordt het verwijderd.

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

## Wat deze video behandelt

- cargo build draait de binary van een vreemde
- De bewijzen: Rust Blog, SafeDep, Hacker News
- Dit is The Daily Diff, postmortem
- Tijdlijn: 02:11 staging → 07:15 gepubliceerd → 08:41 verwijderd
- Mechanisme: build.rs, geen sandbox, de 'yank'-lokker

## Hoofdstukken

- 0:00 cargo build draait de binary van een vreemde
- 0:20 De bewijzen: Rust Blog, SafeDep, Hacker News
- 0:33 Dit is The Daily Diff, postmortem
- 0:40 Tijdlijn: 02:11 staging → 07:15 gepubliceerd → 08:41 verwijderd
- 1:25 Mechanisme: build.rs, geen sandbox, de 'yank'-lokker
- 2:05 git blame — de splitsing
- 2:25 Blast radius: 2.285 downloads
- 2:45 Oordeel + de maandaglijn

## Vertaald transcript

Vertaald vanuit de originele Engelse gesproken tekst. Beschikbare audio en ondertiteling worden beheerd door YouTube.

### cargo build draait de binary van een vreemde

0:00 Een Rust-crate met vier macro's en een kwart miljard downloads voegt er één toe afhankelijkheid, en cargo build draait de binary van een vreemde op jouw machine. 20 augustus 2026. arrayref 0.3.10 verschijnt op crates.io, afhankelijk van proc-macro1. Niet proc-macro2, de echte: één cijfer verschil, en zijn buildscript draait een payload terwijl jouw project compileert. Het beveiligingsteam van Rust verwijdert het 86 minuten later.

### De bewijzen: Rust Blog, SafeDep, Hacker News

0:22 SafeDep publiceert de 'teardown'. Hacker News: 554 punten. Hoe het gebeurt, waarom Cargo het toelaat, en wie de schuld krijgt. Dit is The Daily Diff, postmortem. Twee uur 's nachts, UTC.

### Dit is The Daily Diff, postmortem

0:33 Een account genaamd d-tolney, één letter van David Tolnay, die de helft van Rust onderhoudt, publiceert proc-macro1 1.0.106: de echte

### Tijdlijn: 02:11 staging → 07:15 gepubliceerd → 08:41 verwijderd

0:41 proc-macro2, hernoemd. Staging. 07:11. Versie 1.0.107 voegt een buildscript toe, plus base64, TLS en een HTTP-client. Voor een token-parser. 07:15. Het account van de beheerder herpubliceert arrayref als 0.3.10 en trekt elke oudere versie in. Cargo print: overweeg te updaten naar een versie die niet is ingetrokken. De enige die overblijft is de besmette.

1:02 De waarschuwing is de lokker. Dezelfde minuut meldt een beveiligingsbedrijf het aan Rust. 07:54, een RustSec-issue. 08:29, een issue op de repo; de aanvaller antwoordt met 0.3.11 en een tweede malafide afhankelijkheid. 08:41, verwijderd. Zesentachtig minuten. Waarom? Eén: Cargo bouwt elke gedeclareerde afhankelijkheid, aangeroepen of niet. Eén manifestregel is genoeg.

1:21 Twee: een buildscript draait op jouw machine, als jou, met jouw SSH-sleutels en cargo

### Mechanisme: build.rs, geen sandbox, de 'yank'-lokker

1:26 token, voordat jouw code compileert. Geen sandbox, met opzet: zo vinden crates C-bibliotheken. Drie: binnenin zit de echte proc-macro2, dus de build slaagt. De payload: een TLS-client die elk certificaat vertrouwt, haalt een binary op, plaatst het in /tmp/rust-setup en start het losgekoppeld. Op Windows gaat het via wscript om Cargo's jobobject te omzeilen; een bron commentaar zegt dat. De tweede fase, volgens de RustSec-thread: een remote-access tool gericht op

1:52 browsers en cryptowallets. Poëtisch, aangezien de grootste gebruikers van arrayref secp256k1 en Solana omvatten. git blame. Cargo's model, vijfenvijftig procent: afhankelijkheden draaien code op jouw machine tijdens compilatie, geen sandbox, en de 'yank'-waarschuwing leidde mensen naar het

### git blame — de splitsing

2:07 gif. Eén account, dertig: één credential herpubliceert een crate die een kwart miljard downloads vertrouwt. Het cijfer één, vijftien: één toetsaanslag van Rust's meest vertrouwde crate, en niemand leest de boomstructuur. Blast radius: 2.285 downloads in 86 minuten. Minder dan tien procent van het verkeer, omdat de meeste lockfiles 0.3.9 bevatten. crates.io zegt geen bewijs van gebruik.

### Blast radius: 2.285 downloads

2:27 Twee mensen op de RustSec-thread zijn het er niet mee eens; één vindt een systemd-service. Op Hacker News gaat de topthread niet over de malware. Het is de crate-pagina, waar 0.3.10 nu nooit heeft bestaan. Oordeel, postmortem: NEEDS REVIEW. Zesentachtig minuten om te verwijderen, een blogpost van dezelfde dag, het account vergrendeld: dat deel is SHIP IT. Maar de crate-pagina toont dat er niets is gebeurd, cargo audit zwijgt over een gecachede

### Oordeel + de maandaglijn

2:48 kopie, en buildscripts draaien nog steeds als jij. Maandag: draai het 'find'-commando van de Rust-blog, en behandel een 'yank'-waarschuwing als een vraag, niet als een instructie. Stuur me het incident waarover je nog steeds niet mag praten, in de reacties, of op the daily diff dot dev. En dat is de 'diff' voor vandaag. Ik ben Niko van Axrisi. Verantwoordelijk samenvoegen.

## Bronnen

- [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
