+− THE DAILY DIFFdev & AI news
NEEDS REVIEW

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

קראט Rust בעל ארבעה מאקרואים עם 260 מיליון הורדות מוסיף תלות אחת, ו-`cargo build` מריץ בינארי של זר על המחשב שלך.

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

קראו את המהדורה הכתובה (אנגלית) ↗

מה מכסה הסרטון הזה

  • cargo build מריץ בינארי של זר
  • הקבלות: Rust Blog, SafeDep, Hacker News
  • זהו The Daily Diff, ניתוח לאחר מעשה
  • ציר זמן: 02:11 staging ← 07:15 published ← 08:41 deleted
  • מנגנון: build.rs, ללא ארגז חול, פיתוי ה-yank

תמליל מתורגם

תורגם מהקריינות המקורית באנגלית. זמינות אודיו וכתוביות נשלטת על ידי 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. מזג באחריות.

מקורות

  1. Rust Blog, "Supply chain attack on arrayref" (security-response, Aug 20, 2026)blog.rust-lang.org
  2. RUSTSEC-2026-0260 (arrayref)github.com
  3. RustSec issue #3161 (the original report, IOCs, victims)github.com
  4. SafeDep technical analysissafedep.io
  5. GitHub issue on the repo (0.3.11 spotted)github.com
  6. crates.iocrates.io
  7. Hacker News (554 points)news.ycombinator.com
  8. BleepingComputerwww.bleepingcomputer.com

סרטונים קשורים