# A Rust crate ran malware at compile time. 86 ນາທີ.

Published: 2026-09-15

Rust crate ສີ່ມາກໂຄທີ່ມີການດາວໂຫຼດ 260 ລ້ານເທື່ອໄດ້ເພີ່ມການເພິ່ງພາອາໄສໜຶ່ງ, ແລະ \`cargo build\` ໄດ້ດໍາເນີນການໄບນາຣີຂອງຄົນແປກໜ້າໃນເຄື່ອງຂອງທ່ານ. ວັນທີ 20 ສິງຫາ 2026: arrayref 0.3.10 ມາຮອດ crates.io ໂດຍເພິ່ງພາອາໄສ proc-macro1 — ບໍ່ແມ່ນ proc-macro2, ຕົວຈິງ — ເຊິ່ງສະຄຣິບສ້າງໄດ້ດາວໂຫຼດ payloads, ວາງມັນໄວ້ໃນ /tmp/rust-setup ແລະ ສ້າງມັນແຍກຕ່າງຫາກໃນຂະນະທີ່ໂຄງການຂອງທ່ານກຳລັງສ້າງ. ເວີຊັນທີ່ສະອາດຖືກຖອນອອກ ເພື່ອໃຫ້ຄຳເຕືອນຂອງ Cargo ເອງນຳທ່ານໄປຫາເວີຊັນທີ່ຖືກວາງຢາພິດ. 86 ນາທີຕໍ່ມາ ມັນຖືກລົບ.

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

## ສິ່ງທີ່ວິດີໂອນີ້ກວມເອົາ

- cargo build ດໍາເນີນການໄບນາຣີຂອງຄົນແປກໜ້າ
- ໃບຮັບເງິນ: Rust Blog, SafeDep, Hacker News
- ນີ້ແມ່ນ The Daily Diff, ຫຼັງເກີດເຫດ
- ໄລຍະເວລາ: 02:11 staging → 07:15 published → 08:41 deleted
- ກົນໄກ: build.rs, ບໍ່ມີ sandbox, ເຫຍື່ອ yank

## ບົດ

- 0:00 cargo build ດໍາເນີນການໄບນາຣີຂອງຄົນແປກໜ້າ
- 0:20 ໃບຮັບເງິນ: Rust Blog, SafeDep, Hacker News
- 0:33 ນີ້ແມ່ນ The Daily Diff, ຫຼັງເກີດເຫດ
- 0:40 ໄລຍະເວລາ: 02:11 staging → 07:15 published → 08:41 deleted
- 1:25 ກົນໄກ: build.rs, ບໍ່ມີ sandbox, ເຫຍື່ອ yank
- 2:05 git blame — ການແບ່ງປັນ
- 2:25 ຂອບເຂດຄວາມເສຍຫາຍ: 2,285 ການດາວໂຫຼດ
- 2:45 ຄຳຕັດສິນ + ເສັ້ນວັນຈັນ

## ບົດບັນທຶກທີ່ແປແລ້ວ

ແປຈາກຄຳບັນຍາຍຕົ້ນສະບັບພາສາອັງກິດ. ສຽງ ແລະ ຄຳບັນຍາຍທີ່ມີໃຫ້ແມ່ນຄວບຄຸມໂດຍ YouTube.

### cargo build ດໍາເນີນການໄບນາຣີຂອງຄົນແປກໜ້າ

0:00 Rust crate ສີ່ມາກໂຄທີ່ມີການດາວໂຫຼດໜຶ່ງສ່ວນສີ່ຂອງພັນລ້ານໄດ້ເພີ່ມໜຶ່ງ ການເພິ່ງພາອາໄສ, ແລະ cargo build ດໍາເນີນການໄບນາຣີຂອງຄົນແປກໜ້າໃນເຄື່ອງຂອງທ່ານ. ວັນທີ 20 ສິງຫາ 2026. arrayref 0.3.10 ມາຮອດ crates.io ໂດຍເພິ່ງພາອາໄສ proc-macro1. ບໍ່ແມ່ນ proc-macro2, ຕົວຈິງ: ຕົວເລກຜິດໜຶ່ງໂຕ, ແລະສະຄຣິບສ້າງຂອງມັນໄດ້ດໍາເນີນການ payload ໃນຂະນະທີ່ໂຄງການຂອງທ່ານກຳລັງສ້າງ. ທີມງານຄວາມປອດໄພຂອງ Rust ລົບມັນ 86 ນາທີຕໍ່ມາ.

### ໃບຮັບເງິນ: Rust Blog, SafeDep, Hacker News

0:22 SafeDep ເຜີຍແຜ່ການແຍກອອກ. Hacker News: 554 ຄະແນນ. ມັນເກີດຂຶ້ນແນວໃດ, ເປັນຫຍັງ Cargo ຈຶ່ງອະນຸຍາດ, ແລະໃຜເປັນຜູ້ຮັບຜິດຊອບ. ນີ້ແມ່ນ The Daily Diff, ຫຼັງເກີດເຫດ. ສອງໂມງເຊົ້າ, UTC.

### ນີ້ແມ່ນ The Daily Diff, ຫຼັງເກີດເຫດ

0:33 ບັນຊີຊື່ d-tolney, ຕົວອັກສອນໜຶ່ງຈາກ David Tolnay, ຜູ້ຮັກສາເຄິ່ງໜຶ່ງຂອງ Rust, ເຜີຍແຜ່ proc-macro1 1.0.106: proc-macro2

### ໄລຍະເວລາ: 02:11 staging → 07:15 published → 08:41 deleted

0:41 ຕົວຈິງ, ປ່ຽນຊື່. Staging. 07:11. ເວີຊັນ 1.0.107 ເພີ່ມສະຄຣິບສ້າງ, ບວກກັບ base64, TLS ແລະ HTTP client. ສໍາລັບ token parser. 07:15. ບັນຊີຜູ້ຮັກສາເຜີຍແຜ່ arrayref ຄືນເປັນ 0.3.10 ແລະ ຖອນທຸກເວີຊັນເກົ່າກວ່າ. Cargo ພິມ: ພິຈາລະນາອັບເດດເປັນເວີຊັນທີ່ບໍ່ຖືກຖອນອອກ. ສິ່ງດຽວທີ່ເຫຼືອແມ່ນອັນທີ່ຖືກວາງຢາພິດ.

1:02 ຄຳເຕືອນຄືເຫຍື່ອ. ນາທີດຽວກັນ, ບໍລິສັດຄວາມປອດໄພລາຍງານມັນໃຫ້ Rust. 07:54, ບັນຫາ RustSec. 08:29, ບັນຫາໃນ repo; ຜູ້ໂຈມຕີຕອບກັບ 0.3.11 ແລະການເພິ່ງພາອາໄສທີ່ ເປັນອັນຕະລາຍທີສອງ. 08:41, ຖືກລົບ. ແປດສິບຫົກນາທີ. ເປັນຫຍັງ? ໜຶ່ງ: Cargo ສ້າງທຸກການເພິ່ງພາອາໄສທີ່ຖືກປະກາດ, ຖືກເອີ້ນຫຼືບໍ່. ໜຶ່ງເສັ້ນ manifest ກໍພຽງພໍແລ້ວ.

1:21 ສອງ: ສະຄຣິບສ້າງແລ່ນຢູ່ໃນເຄື່ອງຂອງທ່ານ, ໃນຖານະທ່ານ, ດ້ວຍລະຫັດ SSH ຂອງທ່ານແລະ cargo

### ກົນໄກ: build.rs, ບໍ່ມີ sandbox, ເຫຍື່ອ yank

1:26 token, ກ່ອນທີ່ລະຫັດຂອງທ່ານຈະສ້າງ. ບໍ່ມີ sandbox, ໂດຍການອອກແບບ: ມັນແມ່ນວິທີທີ່ crates ຊອກຫາ C libraries. ສາມ: ພາຍໃນແມ່ນ real proc-macro2, ດັ່ງນັ້ນການສ້າງຈຶ່ງສຳເລັດ. Payload: TLS client ທີ່ເຊື່ອຖືໃບຢັ້ງຢືນໃດໆກໍຕາມດາວໂຫຼດໄບນາຣີ, ວາງມັນໄວ້ໃນ /tmp/rust-setup ແລະ ສ້າງມັນແຍກຕ່າງຫາກ. ໃນ Windows ມັນ detour ຜ່ານ wscript ເພື່ອໜີຈາກວັດຖຸວຽກຂອງ Cargo; ຄຳເຫັນແຫຼ່ງ ກ່າວໄວ້ແນວນັ້ນ. ຂັ້ນຕອນທີສອງ, ອີງຕາມ RustSec thread: ເຄື່ອງມືເຂົ້າເຖິງທາງໄກທີ່ມີເປົ້າໝາຍໃສ່

1:52 browsers ແລະ crypto wallets. ເປັນບົດກະວີ, ເນື່ອງຈາກຜູ້ໃຊ້ທີ່ໃຫຍ່ທີ່ສຸດຂອງ arrayref ລວມມີ secp256k1 ແລະ Solana. git blame. ຮູບແບບຂອງ Cargo, ຫ້າສິບຫ້າເປີເຊັນ: dependencies ດໍາເນີນລະຫັດໃນເຄື່ອງ ຂອງທ່ານໃນເວລາສ້າງ, ບໍ່ມີ sandbox, ແລະຄຳເຕືອນ yank ໄດ້ນຳພາຄົນໄປຫາ

### git blame — ການແບ່ງປັນ

2:07 ຢາພິດ. ໜຶ່ງບັນຊີ, ສາມສິບ: ໜຶ່ງ credential ເຜີຍແຜ່ crate ຄືນໜຶ່ງສ່ວນສີ່ຂອງ ພັນລ້ານການດາວໂຫຼດທີ່ເຊື່ອຖືໄດ້. ຕົວເລກໜຶ່ງ, ສິບຫ້າ: ໜຶ່ງ keystroke ຈາກ Rust's most trusted crate, ແລະບໍ່ມີໃຜອ່ານຕົ້ນໄມ້. ຂອບເຂດຄວາມເສຍຫາຍ: 2,285 ການດາວໂຫຼດໃນ 86 ນາທີ. ຕ່ຳກວ່າສິບເປີເຊັນຂອງການຈະລາຈອນ, ເພາະວ່າ lockfiles ສ່ວນໃຫຍ່ຖື 0.3.9. crates.io ກ່າວວ່າບໍ່ມີຫຼັກຖານການນຳໃຊ້.

### ຂອບເຂດຄວາມເສຍຫາຍ: 2,285 ການດາວໂຫຼດ

2:27 ສອງຄົນໃນ RustSec thread ບໍ່ເຫັນດີ; ຄົນໜຶ່ງພົບ systemd service. ໃນ Hacker News, thread ອັນດັບຕົ້ນໆບໍ່ໄດ້ກ່ຽວກັບ malware. ມັນແມ່ນໜ້າ crate, ບ່ອນທີ່ 0.3.10 ດຽວນີ້ບໍ່ເຄີຍມີຢູ່. ຄຳຕັດສິນ, ຫຼັງເກີດເຫດ: NEEDS REVIEW. ແປດສິບຫົກນາທີເພື່ອລົບ, ບົດ blog ວັນດຽວກັນ, ບັນຊີຖືກລັອກ: ສ່ວນ ນັ້ນແມ່ນ SHIP IT. ແຕ່ໜ້າ crate ສະແດງໃຫ້ເຫັນວ່າບໍ່ມີຫຍັງເກີດຂຶ້ນ, cargo audit ຍັງຄົງງຽບຢູ່ໃນ cached

### ຄຳຕັດສິນ + ເສັ້ນວັນຈັນ

2:48 copy, ແລະ build scripts ຍັງຄົງແລ່ນໃນຖານະທ່ານ. ວັນຈັນ: ດໍາເນີນຄໍາສັ່ງ find ຂອງ Rust blog, ແລະຖືຄໍາເຕືອນ yank ເປັນ ຄຳຖາມ, ບໍ່ແມ່ນຄຳສັ່ງ. ສົ່ງເຫດການທີ່ທ່ານຍັງບໍ່ໄດ້ຮັບອະນຸຍາດໃຫ້ເວົ້າກ່ຽວກັບມາໃຫ້ຂ້ອຍ, ໃນຄໍາເຫັນ, ຫຼືທີ່ the daily diff dot dev. ແລະນັ້ນແມ່ນ diff ສໍາລັບມື້ນີ້. ຂ້ອຍແມ່ນ Niko ຈາກ Axrisi. Merge ຢ່າງຮັບຜິດຊອບ.

## ແຫຼ່ງຂໍ້ມູນ

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