# مكتبة 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/ar/video/2026-09-15-arrayref-proc-macro/

## ما يغطيه هذا الفيديو

- cargo build يشغل ملفًا ثنائيًا لغريب
- الإيصالات: مدونة Rust، SafeDep، Hacker News
- هذا هو The Daily Diff، تحليل ما بعد الواقعة
- الجدول الزمني: 02:11 مرحلة التجريب ← 07:15 نشر ← 08:41 حذف
- الآلية: build.rs، لا يوجد صندوق حماية، إغراء السحب

## الفصول

- 0:00 cargo build يشغل ملفًا ثنائيًا لغريب
- 0:20 الإيصالات: مدونة Rust، SafeDep، Hacker News
- 0:33 هذا هو The Daily Diff، تحليل ما بعد الواقعة
- 0:40 الجدول الزمني: 02:11 مرحلة التجريب ← 07:15 نشر ← 08:41 حذف
- 1:25 الآلية: build.rs، لا يوجد صندوق حماية، إغراء السحب
- 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، SafeDep، Hacker News

0:22 SafeDep تنشر التحليل. Hacker News: 554 نقطة. كيف حدث ذلك، لماذا سمح Cargo به، ومن يتحمل اللوم. هذا هو The Daily Diff، تحليل ما بعد الواقعة. الثانية صباحًا، التوقيت العالمي المنسق.

### هذا هو The Daily Diff، تحليل ما بعد الواقعة

0:33 حساب باسم d-tolney، حرف واحد يختلف عن David Tolnay، الذي يحافظ على نصف Rust، ينشر proc-macro1 1.0.106: proc-macro2

### الجدول الزمني: 02:11 مرحلة التجريب ← 07:15 نشر ← 08:41 حذف

0:41 الحقيقي، معاد تسميته. مرحلة التجريب. 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، لا يوجد صندوق حماية، إغراء السحب

1:26 الوصول، قبل ترجمة كودك. لا يوجد صندوق حماية، حسب التصميم: هكذا تجد المكتبات مكتبات C. ثلاثة: بالداخل هو proc-macro2 الحقيقي، لذا ينجح البناء. الحمولة: عميل TLS يثق في أي شهادة يجلب ملفًا ثنائيًا، يسقطه في /tmp/rust-setup ويشغله بشكل منفصل. على Windows يتجاوز عبر wscript للهروب من كائن وظيفة Cargo؛ تعليق مصدر يقول ذلك. المرحلة الثانية، حسب سلسلة RustSec: أداة وصول عن بعد تستهدف

1:52 المتصفحات ومحافظ العملات المشفرة. شاعري، نظرًا لأن أكبر مستخدمي arrayref يشملون secp256k1 و Solana. git blame. نموذج Cargo، خمسة وخمسون بالمائة: التبعيات تشغل كودًا على جهازك في وقت الترجمة، لا يوجد صندوق حماية، وتحذير السحب قاد الناس إلى

### git blame — الانقسام

2:07 السم. حساب واحد، ثلاثون: بيانات اعتماد واحدة تعيد نشر مكتبة يثق بها ربع مليار عملية تنزيل. الرقم واحد، خمسة عشر: ضغطة مفتاح واحدة من أكثر مكتبات Rust الموثوق بها، ولا أحد يقرأ الشجرة. نطاق الانفجار: 2,285 عملية تنزيل في 86 دقيقة. أقل من عشرة بالمائة من حركة المرور، لأن معظم ملفات القفل احتوت على 0.3.9. crates.io تقول لا يوجد دليل على الاستخدام.

### نطاق الانفجار: 2,285 عملية تنزيل

2:27 شخصان في سلسلة RustSec يختلفان؛ أحدهما يجد خدمة systemd. على Hacker News، الموضوع الأعلى ليس عن البرمجيات الخبيثة. إنها صفحة المكتبة، حيث لم يعد 0.3.10 موجودًا أبدًا. الحكم، تحليل ما بعد الواقعة: NEEDS REVIEW. ثمانية وستون دقيقة للحذف، منشور مدونة في نفس اليوم، الحساب مقفل: هذا الجزء هو SHIP IT. لكن صفحة المكتبة لا تظهر شيئًا حدث، و cargo audit يظل صامتًا على نسخة

### الحكم + خط الاثنين

2:48 مخبأة، ونصوص البناء لا تزال تعمل بصفتك أنت. الاثنين: قم بتشغيل أمر البحث الخاص بمدونة Rust، وتعامل مع تحذير السحب كـ سؤال، وليس تعليمات. أرسل لي الحادث الذي لا يزال غير مسموح لك بالتحدث عنه، في التعليقات، أو على the 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
