# Rust kreyti kompilyatsiya vaqtida zararli dastur ishga tushirdi. 86 daqiqa.

Published: 2026-09-15

260 million yuklab olingan to'rtta makroli Rust kreyti bitta bog'liqlikni qo'shadi va \`cargo build\` sizning kompyuteringizda begona faylni ishga tushiradi. 2026-yil 20-avgust: arrayref 0.3.10 crates.io ga tushadi, u proc-macro1 ga bog'liq bo'ladi — haqiqiy proc-macro2 emas — uning build skripti yuklamani yuklab oladi, /tmp/rust-setup ga tashlaydi va sizning loyihangiz kompilyatsiya qilinayotganda uni ajratilgan holda ishga tushiradi. Toza versiyalar o'chirib tashlangan, shuning uchun Cargo'ning o'z ogohlantirishi sizni zaharli versiyaga yo'naltiradi. 86 daqiqadan so'ng u o'chiriladi.

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

## Bu video nimani qamrab oladi

- cargo build begona faylni ishga tushiradi
- Cheklar: Rust Blog, SafeDep, Hacker News
- Bu The Daily Diff, postmortem
- Vaqt jadvali: 02:11 staging → 07:15 published → 08:41 deleted
- Mexanizm: build.rs, qum qutisi yo'q, tortish ilmoqi

## Boblar

- 0:00 cargo build begona faylni ishga tushiradi
- 0:20 Cheklar: Rust Blog, SafeDep, Hacker News
- 0:33 Bu The Daily Diff, postmortem
- 0:40 Vaqt jadvali: 02:11 staging → 07:15 published → 08:41 deleted
- 1:25 Mexanizm: build.rs, qum qutisi yo'q, tortish ilmoqi
- 2:05 git blame — bo'linish
- 2:25 Zarar radiusi: 2,285 yuklab olish
- 2:45 Hukm + Dushanba qatori

## Tarjima qilingan transkript

Asl inglizcha hikoyadan tarjima qilingan. Mavjud audio va subtitrlar YouTube tomonidan boshqariladi.

### cargo build begona faylni ishga tushiradi

0:00 Chorak milliard yuklab olingan to'rtta makroli Rust kreyti bittasini qo'shadi bog'liqlikni, va cargo build sizning kompyuteringizda begona faylni ishga tushiradi. 2026-yil, 20-avgust. arrayref 0.3.10 crates.io ga tushadi, u proc-macro1 ga bog'liq. Haqiqiy proc-macro2 emas: bitta raqam farqi, va uning build skripti sizning loyihangiz kompilyatsiya qilinayotganda yuklamani ishga tushiradi. Rustning xavfsizlik jamoasi uni 86 daqiqadan so'ng o'chiradi.

### Cheklar: Rust Blog, SafeDep, Hacker News

0:22 SafeDep ajralishni nashr etadi. Hacker News: 554 ball. Qanday sodir bo'ladi, nega Cargo bunga yo'l qo'yadi va kim ayblanadi. Bu The Daily Diff, postmortem. Tungi soat ikki, UTC.

### Bu The Daily Diff, postmortem

0:33 D-tolney nomli akkaunt, David Tolnaydan bir harf farqi, Rustning yarmini ta'minlaydi, proc-macro1 1.0.106 ni nashr etadi: haqiqiy

### Vaqt jadvali: 02:11 staging → 07:15 published → 08:41 deleted

0:41 proc-macro2, qayta nomlangan. Staging. 07:11. 1.0.107 versiyasi build skriptini, shuningdek, base64, TLS va HTTP mijozini qo'shadi. Token parser uchun. 07:15. Ta'minlovchining akkaunti arrayrefni 0.3.10 sifatida qayta nashr etadi va har bir eski versiyani o'chirib tashlaydi. Cargo chop etadi: o'chirilmagan versiyaga yangilashni ko'rib chiqing. Qolgan yagona versiya esa zaharli versiyadir.

1:02 Ogohlantirish — bu ilmoq. Xuddi shu daqiqada xavfsizlik firmasi uni Rustga xabar beradi. 07:54, RustSec muammosi. 08:29, repoda muammo; hujumchi 0.3.11 va ikkinchi zararli bog'liqlik bilan javob beradi. 08:41, o'chirildi. Sakson olti daqiqa. Nega? Birinchidan: Cargo har bir e'lon qilingan bog'liqlikni, chaqirilgan yoki chaqirilmaganini yaratadi. Bitta manifest qatori yetarli.

1:21 Ikkinchidan: build skripti sizning kompyuteringizda, siz sifatida, sizning SSH kalitlari va cargo

### Mexanizm: build.rs, qum qutisi yo'q, tortish ilmoqi

1:26 tokeningiz bilan, kodingiz kompilyatsiya qilinmasdan oldin ishga tushadi. Qum qutisi yo'q, dizayn bo'yicha: bu kreytlar C kutubxonalarini qanday topishi. Uchinchidan: ichida haqiqiy proc-macro2 bor, shuning uchun qurilish muvaffaqiyatli bo'ladi. Yuklama: har qanday sertifikatga ishonadigan TLS mijozi faylni yuklab oladi, /tmp/rust-setup ga tashlaydi va uni ajratilgan holda ishga tushiradi. Windowsda u Cargo'ning ish ob'ektidan qochish uchun wscript orqali aylanadi; bu manba sharhida aytilgan. Ikkinchi bosqich, RustSec mavzusiga ko'ra: brauzerlar va kripto hamyonlariga qaratilgan

1:52 masofaviy kirish vositasi. She'riy, chunki arrayrefning eng yirik foydalanuvchilari orasida secp256k1 va Solana bor. git blame. Cargo modeli, ellik besh foiz: bog'liqliklar kompilyatsiya vaqtida sizning kompyuteringizda kod ishga tushiradi, qum qutisi yo'q, va o'chirish ogohlantirishi odamlarni

### git blame — bo'linish

2:07 zaharga yo'naltirdi. Bitta akkaunt, o'ttiz: bitta hisob ma'lumoti chorak milliard yuklab olishga ishonadigan kreytni qayta nashr etadi. billion yuklab olishga ishonadigan kreytni qayta nashr etadi. Bir raqami, o'n besh: Rustning eng ishonchli kreytidan bir tugma bosish, va hech kim daraxtni o'qimaydi. Portlash radiusi: 86 daqiqada 2,285 yuklab olish. Trafikning o'n foizidan kami, chunki ko'pchilik lockfile'lar 0.3.9 ni ushlab turgan. crates.io foydalanish dalili yo'qligini aytadi.

### Zarar radiusi: 2,285 yuklab olish

2:27 RustSec mavzusidagi ikki kishi rozi emas; biri systemd xizmatini topadi. Hacker Newsda eng yuqori mavzu zararli dastur haqida emas. Bu kreyt sahifasi, u yerda 0.3.10 endi hech qachon mavjud bo'lmagan. Hukm, postmortem: NEEDS REVIEW. O'chirish uchun sakson olti daqiqa, shu kuni blog posti, akkaunt bloklangan: bu qism SHIP IT. Ammo kreyt sahifasi hech narsa sodir bo'lmaganini ko'rsatadi, cargo audit keshdagi

### Hukm + Dushanba qatori

2:48 nusxada sukut saqlaydi, va build skriptlari siz sifatida ishga tushishda davom etadi. Dushanba: Rust blogining topish buyrug'ini ishga tushiring va tortish ogohlantirishini savol sifatida qabul qiling, ko'rsatma sifatida emas. Menga hali ham gapirishga ruxsat berilmagan hodisani yuboring, izohlarda yoki daily diff dot dev manzilida. Va bugungi farq shundan iborat. Men Axrisidan Nikoman. Mas'uliyat bilan birlashtiring.

## Manbalar

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