+− THE DAILY DIFFdev & AI news
NEEDS REVIEW

Nagpatakbo ng malware ang isang Rust crate sa compile time. 86 minuto.

Isang four-macro Rust crate na may 260 milyong download ang nagdagdag ng isang dependency, at ang `cargo build` ay nagpapatakbo ng binary ng isang estranghero sa iyong makina.

Isang four-macro Rust crate na may 260 milyong download ang nagdagdag ng isang dependency, at ang `cargo build` ay nagpapatakbo ng binary ng isang estranghero sa iyong makina. Agosto 20, 2026: ang arrayref 0.3.10 ay lumapag sa crates.io na nakadepende sa proc-macro1 — hindi proc-macro2, ang tunay — na ang build script ay nagda-download ng payload, naghuhulog nito sa /tmp/rust-setup at nagpapagana nito nang hiwalay habang nagko-compile ang iyong proyekto. Ang mga malinis na bersyon ay inalis kaya ang sariling babala ng Cargo ay magtuturo sa iyo sa nalason. 86 minuto pagkatapos ay dinelete ito.

Basahin ang nakasulat na edisyon (English) ↗

Ang sakop ng video na ito

  • Ang cargo build ay nagpapatakbo ng binary ng estranghero
  • Ang mga resibo: Rust Blog, SafeDep, Hacker News
  • Ito ang The Daily Diff, postmortem
  • Timeline: 02:11 staging → 07:15 published → 08:41 deleted
  • Mekanismo: build.rs, walang sandbox, ang pang-akit na yank

Isinaling transcript

Isinalin mula sa orihinal na salaysay sa English. Ang available na audio at mga caption ay kinokontrol ng YouTube.

Ang cargo build ay nagpapatakbo ng binary ng estranghero

0:00 Isang four-macro Rust crate na may quarter ng isang bilyong download ang nagdadagdag ng isa dependency, at ang cargo build ay nagpapatakbo ng binary ng estranghero sa iyong makina. Agosto 20, 2026. Ang arrayref 0.3.10 ay lumapag sa crates.io na nakadepende sa proc-macro1. Hindi proc-macro2, ang tunay: isang digit ang pagkakaiba, at ang build script nito ay nagpapatakbo ng payload habang nagko-compile ang iyong proyekto. Binura ito ng security team ng Rust 86 minuto pagkatapos.

Ang mga resibo: Rust Blog, SafeDep, Hacker News

0:22 Inilathala ng SafeDep ang teardown. Hacker News: 554 puntos. Paano ito nangyari, bakit pinayagan ito ng Cargo, at sino ang dapat sisihin. Ito ang The Daily Diff, postmortem. Alas dos ng umaga, UTC.

Ito ang The Daily Diff, postmortem

0:33 Isang account na tinatawag na d-tolney, isang letra mula kay David Tolnay, na nagme-maintain ng kalahati ng Rust, ay naglathala ng proc-macro1 1.0.106: tunay na

Timeline: 02:11 staging → 07:15 published → 08:41 deleted

0:41 proc-macro2, pinalitan ang pangalan. Staging. 07:11. Ang bersyon 1.0.107 ay nagdadagdag ng build script, kasama ang base64, TLS at isang HTTP client. Para sa isang token parser. 07:15. Ang account ng maintainer ay muling naglathala ng arrayref bilang 0.3.10 at inalis ang bawat lumang bersyon. Inilimbag ng Cargo: isaalang-alang ang pag-update sa isang bersyon na hindi inalis. Ang tanging natira ay ang nalason.

1:02 Ang babala ay ang pang-akit. Parehong minuto, isang security firm ang nag-ulat nito sa Rust. 07:54, isang RustSec issue. 08:29, isang isyu sa repo; ang attacker ay sumagot ng 0.3.11 at isang pangalawang malicious dependency. 08:41, binura. Walumpu't-anim na minuto. Bakit? Isa: Bumubuo ang Cargo ng bawat deklaradong dependency, tinawag man o hindi. Isang linya ng manifest ay sapat na.

1:21 Dalawa: isang build script ang tumatakbo sa iyong makina, bilang ikaw, kasama ang iyong mga SSH key at cargo

Mekanismo: build.rs, walang sandbox, ang pang-akit na yank

1:26 token, bago mag-compile ang iyong code. Walang sandbox, ayon sa disenyo: ito ang paraan kung paano nakakahanap ng mga C library ang crates. Tatlo: sa loob ay ang tunay na proc-macro2, kaya matagumpay ang build. Ang payload: isang TLS client na nagtitiwala sa anumang certificate ay kumukuha ng binary, inilalagay ito sa /tmp/rust-setup at pinapatakbo ito nang hiwalay. Sa Windows, dumaan ito sa wscript para makatakas sa job object ng Cargo; isang source komento ang nagsasabi nito. Ang ikalawang yugto, ayon sa thread ng RustSec: isang remote-access tool na naglalayon sa

1:52 mga browser at crypto wallet. Poetic, dahil ang pinakamalaking gumagamit ng arrayref ay kinabibilangan ng secp256k1 at Solana. git blame. Ang modelo ng Cargo, limampu't-limang porsyento: ang mga dependency ay nagpapatakbo ng code sa iyong makina sa compile time, walang sandbox, at ang babala ng yank ay naghatid ng mga tao sa

git blame — ang hati

2:07 lason. Isang account, tatlumpu: isang kredensyal muling naglathala ng isang crate na quarter ng isang bilyong download ang nagtitiwala. Ang digit na isa, kinse: isang keystroke mula sa pinakatiyak na crate ng Rust, at walang bumabasa ng puno. Blast radius: 2,285 download sa loob ng 86 minuto. Mas mababa sa sampung porsiyento ng trapiko, dahil ang karamihan sa mga lockfile ay mayroong 0.3.9. Ang crates.io ay nagsasabing walang ebidensya ng paggamit.

Laki ng pinsala: 2,285 download

2:27 Dalawang tao sa thread ng RustSec ang hindi sumasang-ayon; isa ang nakahanap ng serbisyo ng systemd. Sa Hacker News ang pangunahing thread ay hindi tungkol sa malware. Ito ang pahina ng crate, kung saan ang 0.3.10 ay hindi na umiral. Hatol, postmortem: NEEDS REVIEW. Walumpu't-anim na minuto upang burahin, isang post sa blog sa parehong araw, naka-lock ang account: ang bahaging iyon ay SHIP IT. Ngunit ang pahina ng crate ay nagpapakita na walang nangyari, ang cargo audit ay nananatiling tahimik sa isang naka-cache na

Hatol + ang linya ng Lunes

2:48 kopya, at ang mga build script ay tumatakbo pa rin bilang ikaw. Lunes: patakbuhin ang find command ng Rust blog, at ituring ang isang yank warning bilang isang tanong, hindi isang instruksyon. Ipadala sa akin ang insidente na hindi mo pa rin pinapayagang pag-usapan, sa mga komento, o sa the daily diff dot dev. At iyon ang diff para ngayon. Ako si Niko mula sa Axrisi. Merge nang responsable.

Mga Pinagmulan

  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

Mga kaugnay na video