Crate Rust menjalankan malware saat kompilasi. 86 menit.
Crate Rust empat-makro dengan 260 juta unduhan menambahkan satu dependensi, dan `cargo build` menjalankan biner orang asing di mesin Anda.
Crate Rust empat-makro dengan 260 juta unduhan menambahkan satu dependensi, dan `cargo build` menjalankan biner orang asing di mesin Anda. 20 Agustus 2026: arrayref 0.3.10 mendarat di crates.io tergantung pada proc-macro1 — bukan proc-macro2, yang asli — yang skrip build-nya mengunduh payload, menaruhnya di /tmp/rust-setup dan menjalankannya secara terpisah saat proyek Anda dikompilasi. Versi bersih ditarik sehingga peringatan Cargo sendiri membawa Anda ke versi yang terkontaminasi. 86 menit kemudian dihapus.
Baca edisi tertulis (Inggris) ↗
Isi video ini
- cargo build menjalankan biner orang asing
- Resi: Rust Blog, SafeDep, Hacker News
- Ini adalah The Daily Diff, postmortem
- Linimasa: 02:11 staging → 07:15 diterbitkan → 08:41 dihapus
- Mekanisme: build.rs, tanpa sandbox, umpan tarik
Transkrip terjemahan
Diterjemahkan dari narasi asli bahasa Inggris. Audio dan teks tersedia yang dikontrol oleh YouTube.
cargo build menjalankan biner orang asing
0:00 Crate Rust empat-makro dengan seperempat miliar unduhan menambahkan satu dependensi, dan cargo build menjalankan biner orang asing di mesin Anda. 20 Agustus 2026. arrayref 0.3.10 mendarat di crates.io tergantung pada proc-macro1. Bukan proc-macro2, yang asli: beda satu digit, dan skrip build-nya menjalankan payload saat proyek Anda dikompilasi. Tim keamanan Rust menghapusnya 86 menit kemudian.
Resi: Rust Blog, SafeDep, Hacker News
0:22 SafeDep menerbitkan pembongkaran. Hacker News: 554 poin. Bagaimana itu terjadi, mengapa Cargo membiarkannya, dan siapa yang patut disalahkan. Ini adalah The Daily Diff, postmortem. Pukul dua pagi, UTC.
Ini adalah The Daily Diff, postmortem
0:33 Sebuah akun bernama d-tolney, satu huruf dari David Tolnay, yang memelihara separuh Rust, menerbitkan proc-macro1 1.0.106: proc-macro2
Linimasa: 02:11 staging → 07:15 diterbitkan → 08:41 dihapus
0:41 asli, diganti nama. Staging. 07:11. Versi 1.0.107 menambahkan skrip build, plus base64, TLS, dan klien HTTP. Untuk parser token. 07:15. Akun maintainer menerbitkan ulang arrayref sebagai 0.3.10 dan menarik setiap versi lama. Cargo mencetak: pertimbangkan untuk memperbarui ke versi yang tidak ditarik. Satu-satunya yang tersisa adalah yang terkontaminasi.
1:02 Peringatan itu adalah umpan. Pada menit yang sama, sebuah firma keamanan melaporkannya ke Rust. 07:54, sebuah isu RustSec. 08:29, sebuah isu di repo; penyerang menjawab dengan 0.3.11 dan dependensi berbahaya kedua. 08:41, dihapus. Delapan puluh enam menit. Mengapa? Satu: Cargo membangun setiap dependensi yang dideklarasikan, dipanggil atau tidak. Satu baris manifes sudah cukup.
1:21 Dua: skrip build berjalan di mesin Anda, sebagai Anda, dengan kunci SSH dan token
Mekanisme: build.rs, tanpa sandbox, umpan tarik
1:26 cargo Anda, sebelum kode Anda dikompilasi. Tanpa sandbox, berdasarkan desain: begitulah crate menemukan pustaka C. Tiga: di dalamnya ada proc-macro2 asli, jadi build berhasil. Payload: klien TLS yang mempercayai sertifikat apa pun mengambil biner, menaruhnya di /tmp/rust-setup dan menjalankannya secara terpisah. Di Windows itu membelok melalui wscript untuk melarikan diri dari objek job Cargo; sebuah komentar sumber mengatakannya. Tahap kedua, sesuai utas RustSec: alat akses jarak jauh yang ditujukan untuk
1:52 peramban dan dompet kripto. Puitis, karena pengguna terbesar arrayref termasuk secp256k1 dan Solana. git blame. Model Cargo, lima puluh lima persen: dependensi menjalankan kode di mesin Anda saat kompilasi, tanpa sandbox, dan peringatan tarik menuntun orang ke
git blame — pemisahan
2:07 racun. Satu akun, tiga puluh: satu kredensial menerbitkan ulang crate yang dipercaya seperempat miliar unduhan. Digit satu, lima belas: satu ketukan kunci dari crate Rust yang paling terpercaya, dan tidak ada yang membaca pohon. Radius ledakan: 2.285 unduhan dalam 86 menit. Kurang dari sepuluh persen lalu lintas, karena sebagian besar lockfile berisi 0.3.9. crates.io mengatakan tidak ada bukti penggunaan.
Radius ledakan: 2.285 unduhan
2:27 Dua orang di utas RustSec tidak setuju; satu menemukan layanan systemd. Di Hacker News utas teratas bukan tentang malware. Itu adalah halaman crate, di mana 0.3.10 sekarang tidak pernah ada. Putusan, postmortem: NEEDS REVIEW. Delapan puluh enam menit untuk menghapus, posting blog di hari yang sama, akun dikunci: bagian itu adalah SHIP IT. Tapi halaman crate menunjukkan tidak ada yang terjadi, cargo audit tetap diam pada salinan
Putusan + batas Senin
2:48 cache, dan skrip build masih berjalan sebagai Anda. Senin: jalankan perintah find blog Rust, dan perlakukan peringatan tarik sebagai pertanyaan, bukan instruksi. Kirimkan saya insiden yang masih belum boleh Anda bicarakan, di kolom komentar, atau di the daily diff dot dev. Dan itu adalah the diff untuk hari ini. Saya Niko dari Axrisi. Gabungkan dengan bertanggung jawab.
Sumber
- 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



