# קראט Rust הרץ תוכנה זדונית בזמן קומפילציה. 86 דקות.

Published: 2026-09-15

קראט Rust בעל ארבעה מאקרואים עם 260 מיליון הורדות מוסיף תלות אחת, ו-\`cargo build\` מריץ בינארי של זר על המחשב שלך. 20 באוגוסט 2026: arrayref 0.3.10 נוחת ב-crates.io ותלוי ב-proc-macro1 — לא proc-macro2, האמיתי — שסקריפט הבנייה שלו מוריד מטען ייעודי, מפיל אותו ב-/tmp/rust-setup ומפעיל אותו מנותק בזמן שהפרויקט שלך מקומפל. הגרסאות הנקיות נשלפות כך שהאזהרה של Cargo עצמה מובילה אותך לגרסה המורעלת. 86 דקות לאחר מכן הוא נמחק.

Canonical: https://thedailydiff.dev/he/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, ללא ארגז חול, פיתוי ה-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, ללא ארגז חול, פיתוי ה-yank
- 2:05 git blame — הפיצול
- 2:25 רדיוס פיצוץ: 2,285 הורדות
- 2:45 פסק דין + קו יום שני

## תמליל מתורגם

תורגם מהקריינות המקורית באנגלית. זמינות אודיו וכתוביות נשלטת על ידי YouTube.

### cargo build מריץ בינארי של זר

0:00 קראט Rust בעל ארבעה מאקרואים עם רבע מיליארד הורדות מוסיף אחד תלות, ו-cargo build מריץ בינארי של זר על המחשב שלך. 20 באוגוסט 2026. arrayref 0.3.10 נוחת ב-crates.io ותלוי ב-proc-macro1. לא proc-macro2, האמיתי: ספרה אחת שגויה, וסקריפט הבנייה שלו מריץ מטען ייעודי בזמן שהפרויקט שלך מקומפל. צוות האבטחה של 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. למנתח טוקנים. 07:15. חשבון המתחזק מפרסם מחדש את arrayref כ-0.3.10 ו- מושך כל גרסה ישנה יותר. Cargo מדפיס: שקול לעדכן לגרסה שלא נמשכה. היחידה שנותרה היא המורעלת.

1:02 האזהרה היא הפיתיון. באותה דקה, חברת אבטחה מדווחת על כך ל-Rust. 07:54, בעיית RustSec. 08:29, בעיה במאגר; התוקף עונה עם 0.3.11 ותלות זדונית שנייה. 08:41, נמחק. שמונים ושש דקות. למה? אחת: Cargo בונה כל תלות מוצהרת, נקראת או לא. שורת מניפסט אחת מספיקה.

1:21 שתיים: סקריפט בנייה רץ על המכונה שלך, כמותך, עם מפתחות ה-SSH וטוקן ה-cargo שלך,

### מנגנון: build.rs, ללא ארגז חול, פיתוי ה-yank

1:26 לפני שהקוד שלך מקומפל. ללא ארגז חול, בתכנון: כך קראטים מוצאים ספריות C. שלוש: בפנים נמצא proc-macro2 האמיתי, כך שהבנייה מצליחה. המטען הייעודי: לקוח TLS שבוטח בכל תעודה שולף בינארי, מפיל אותו ב-/tmp/rust-setup ומפעיל אותו מנותק. ב-Windows הוא מתעקף דרך wscript כדי לברוח מאובייקט העבודה של Cargo; תגובת מקור מציינת זאת. השלב השני, לפי שרשור ה-RustSec: כלי גישה מרחוק שמכוון ל-

1:52 דפדפנים וארנקי קריפטו. פואטי, שכן המשתמשים הגדולים ביותר של arrayref כוללים את secp256k1 וסולנה. git blame. מודל Cargo, חמישים וחמישה אחוזים: תלויות מריצות קוד על המכונה שלך בזמן קומפילציה, ללא ארגז חול, ואזהרת ה-yank הובילה אנשים אל ה-

### git blame — הפיצול

2:07 רעל. חשבון אחד, שלושים: אישור אחד מפרסם מחדש קראט שרבע מיליארד הורדות סומכות עליו. הספרה אחת, חמישה עשר: לחיצת מקש אחת מהקראט המהימן ביותר של Rust, ואף אחד לא קורא את העץ. רדיוס פיצוץ: 2,285 הורדות ב-86 דקות. פחות מעשרה אחוזים מהתעבורה, מכיוון שרוב קובצי ה-lockfile הכילו 0.3.9. crates.io אומר שאין עדות לשימוש.

### רדיוס פיצוץ: 2,285 הורדות

2:27 שני אנשים בשרשור ה-RustSec לא מסכימים; אחד מוצא שירות systemd. ב-Hacker News השרשור המוביל אינו עוסק בתוכנה הזדונית. זו דף הקראט, שם 0.3.10 כעת מעולם לא היה קיים. פסק דין, ניתוח לאחר מעשה: NEEDS REVIEW. שמונים ושש דקות למחיקה, פוסט בבלוג באותו יום, החשבון ננעל: החלק הזה הוא SHIP IT. אבל דף הקראט מראה ששום דבר לא קרה, cargo audit שותק על עותק שמור

### פסק דין + קו יום שני

2:48 וקובצי build עדיין רצים כמותך. יום שני: הרץ את פקודת החיפוש של בלוג Rust, והתייחס לאזהרת yank כאל שאלה, לא כאל הוראה. שלח לי את האירוע שעדיין אסור לך לדבר עליו, בתגובות, או ב-daily diff dot dev. וזהו ה-diff להיום. אני ניקו מ-Axrisi. מזג באחריות.

## מקורות

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