Rust-paketti ajoi haittaohjelman käännösaikana. 86 minuuttia.
Neljän makron Rust-paketti, jolla on 260 miljoonaa latausta, lisää yhden riippuvuuden, ja `cargo build` ajaa tuntemattoman suoritettavan tiedoston koneellasi.
Neljän makron Rust-paketti, jolla on 260 miljoonaa latausta, lisää yhden riippuvuuden, ja `cargo build` ajaa tuntemattoman suoritettavan tiedoston koneellasi. 20. elokuuta 2026: arrayref 0.3.10 saapuu crates.io-sivustolle riippuen proc-macro1:stä – ei proc-macro2:sta, aidosta – jonka käännöskripti lataa haittakuorman, pudottaa sen /tmp/rust-setup-kansioon ja käynnistää sen erillisenä projektisi käännöksen aikana. Puhtaat versiot on poistettu, joten Cargon oma varoitus ohjaa sinut saastuneeseen. 86 minuuttia myöhemmin se poistetaan.
Lue kirjoitettu versio (englanniksi) ↗
Mitä tämä video käsittelee
- cargo build ajaa tuntemattoman suoritettavan tiedoston
- Tositteet: Rust Blog, SafeDep, Hacker News
- Tämä on The Daily Diff, jälkianalyysi
- Aikajana: 02:11 staging → 07:15 julkaistu → 08:41 poistettu
- Mekanismi: build.rs, ei hiekkalaatikkoa, poiston viehätys
Käännetty transkriptio
Käännetty alkuperäisestä englanninkielisestä selostuksesta. Käytettävissä olevan äänen ja tekstitysten hallinta tapahtuu YouTuben kautta.
cargo build ajaa tuntemattoman suoritettavan tiedoston
0:00 Neljän makron Rust-paketti, jolla on neljännesmiljardi latausta, lisää yhden riippuvuuden, ja cargo build ajaa tuntemattoman suoritettavan tiedoston koneellasi. 20. elokuuta 2026. arrayref 0.3.10 saapuu crates.io-sivustolle riippuen proc-macro1:stä. Ei proc-macro2:sta, aidosta: yhden numeron heitto, ja sen käännöskripti ajaa haittakuorman projektisi kääntämisen aikana. Rustin tietoturvatiimi poistaa sen 86 minuuttia myöhemmin.
Tositteet: Rust Blog, SafeDep, Hacker News
0:22 SafeDep julkaisee purun. Hacker News: 554 pistettä. Kuinka se tapahtuu, miksi Cargo sallii sen ja kuka saa syytteen. Tämä on The Daily Diff, jälkianalyysi. Kaksi aamuyöllä, UTC.
Tämä on The Daily Diff, jälkianalyysi
0:33 Tili nimeltä d-tolney, yhden kirjaimen päässä David Tolnaysta, joka ylläpitää puolta Rustista, julkaisee proc-macro1 1.0.106:n: oikean
Aikajana: 02:11 staging → 07:15 julkaistu → 08:41 poistettu
0:41 proc-macro2:n, uudelleennimettynä. Staging. 07:11. Versio 1.0.107 lisää käännöskriptin sekä base64:n, TLS:n ja HTTP-asiakkaan. Token-jäsentäjälle. 07:15. Ylläpitäjän tili julkaisee arrayrefin uudelleen versiona 0.3.10 ja poistaa kaikki vanhemmat versiot. Cargo tulostaa: harkitse päivittämistä versioon, jota ei ole poistettu. Ainoa jäljellä oleva on saastunut.
1:02 Varoitus on syötti. Samalla minuutilla tietoturvayritys ilmoittaa siitä Rustille. 07:54, RustSec-ongelma. 08:29, ongelma repossa; hyökkääjä vastaa versiolla 0.3.11 ja toisella haitallisella riippuvuudella. 08:41, poistettu. Kahdeksankymmentäkuusi minuuttia. Miksi? Yksi: Cargo rakentaa jokaisen ilmoitetun riippuvuuden, kutsutun tai ei. Yksi manifestrivi riittää.
1:21 Kaksi: käännöskripti toimii koneellasi, sinun käyttäjänä, SSH-avaimillasi ja cargo-
Mekanismi: build.rs, ei hiekkalaatikkoa, poiston viehätys
1:26 tokenillasi, ennen koodisi kääntymistä. Ei hiekkalaatikkoa, suunnitellusti: näin paketit löytävät C-kirjastoja. Kolme: sisällä on oikea proc-macro2, joten käännös onnistuu. Haittakuorma: TLS-asiakas, joka luottaa mihin tahansa varmenteeseen, hakee suoritettavan tiedoston, pudottaa sen /tmp/rust-setup-kansioon ja käynnistää sen erillisenä. Windowsissa se ohjautuu wscriptin kautta paetakseen Cargon työobjektia; lähdekommentti kertoo niin. Toinen vaihe, RustSec-ketjun mukaan: etäkäyttötyökalu, joka on suunnattu
1:52 selaimille ja kryptolompakoille. Runollista, sillä arrayrefin suurimpia käyttäjiä ovat secp256k1 ja Solana. git blame. Cargon malli, viisikymmentäviisi prosenttia: riippuvuudet ajavat koodia koneellasi käännösaikana, ei hiekkalaatikkoa, ja poistovaroitus ohjasi ihmiset
git blame – jako
2:07 myrkkyyn. Yksi tili, kolmekymmentä: yksi tunnus julkaisee uudelleen paketin, johon neljännesmiljardi latausta luottaa. Numero yksi, viisitoista: yksi näppäily Rustin luotetuimmasta paketista, eikä kukaan lue puuta. Vahinkoalue: 2 285 latausta 86 minuutissa. Alle kymmenen prosenttia liikenteestä, koska useimmat lockfilet sisälsivät version 0.3.9. crates.io sanoo, ettei käytöstä ole todisteita.
Vahinkoalue: 2 285 latausta
2:27 Kaksi henkilöä RustSec-ketjussa on eri mieltä; toinen löytää systemd-palvelun. Hacker Newsissa ylin ketju ei käsittele haittaohjelmaa. Se on pakettisivu, jossa 0.3.10 ei nyt koskaan ollut olemassa. Tuomio, jälkianalyysi: NEEDS REVIEW. Kahdeksankymmentäkuusi minuuttia poistamiseen, saman päivän blogikirjoitus, tili lukittu: tämä osa on SHIP IT. Mutta pakettisivu ei näytä mitään tapahtuneen, cargo audit pysyy hiljaa välimuistiin tallennetusta
Tuomio + maanantain linja
2:48 kopiosta, ja käännöskriptit toimivat edelleen sinun käyttäjänä. Maanantai: aja Rust-blogin find-komento ja käsittele poistovaroitusta kysymyksenä, ei ohjeena. Lähetä minulle tapaus, josta et edelleenkään saa puhua, kommenteissa tai osoitteessa daily diff dot dev. Ja se on päivän diff. Olen Niko Axrisista. Yhdistä vastuullisesti.
Lähteet
- 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



