CVE-2022-21658
سباق في std::fs::remove_dir_all في rustlang
- تم النشر
- 20/01/2022
- محدث
- 22/04/2025
- تخصيص CNA
- GitHub_M
- الأدلة المرصودة
- 04/08/2026
CVSS الأساسي
nvd · CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:N/I:L/A:Hمنخفض · الثلاثين يومًا القادمة
- المئوية
- 70.4%
- تاريخ الموديل
- 21/09/2026
EPSS هو تقدير إحصائي، وليس يقينًا أو مقياسًا للتأثير. ادمجها مع CVSS وحالة KEV والتعرض وبيئتك.
ملخص
# ثغرة أمنية في `std::fs::remove_dir_all` في لغة Rust Rust هي لغة برمجة متعددة النماذج ولأغراض عامة، صُممت لتحقيق الأداء والسلامة، وخاصة السلامة في التزامن. تم إبلاغ مجموعة الاستجابة الأمنية في Rust (Rust Security Response WG) بأن دالة المكتبة القياسية `std::fs::remove_dir_all` معرضة لسباق بيانات (race condition) يتيح تتبع الروابط الرمزية (CWE-363). يمكن للمهاجم استغلال هذه المشكلة الأمنية لخداع برنامج بصلاحيات مرتفعة لحذف ملفات ومجلدات لا يمكن للمهاجم الوصول إليها أو حذفها بطريقة أخرى. تتأثر الإصدارات من Rust 1.0.0 حتى Rust 1.58.0 بهذه الثغرة، بينما يحتوي الإصدار 1.58.1 على التصحيح. لاحظ أن أهداف البناء التالية لا تمتلك واجهات برمجة تطبيقات (APIs) قابلة للاستخدام للتخفيف من الهجوم بشكل صحيح، وبالتالي تظل معرضة للخطر حتى مع سلسلة أدوات مصححة: macOS قبل الإصدار 10.10 (Yosemite) و REDOX. نوصي الجميع بتحديث Rust إلى الإصدار 1.58.1 في أقرب وقت ممكن، وخاصة المطورين الذين يطورون برامج يُتوقع تشغيلها في سياقات بصلاحيات مرتفعة (بما في ذلك خدام النظام وثنائيات setuid)، حيث أن هذه البرامج لديها أعلى خطر للتأثر بهذه الثغرة. لاحظ أن إضافة فحوصات في قاعدة التعليمات البرمجية الخاصة بك قبل استدعاء `remove_dir_all` لن تخفف من الثغرة، لأن هذه الفحوصات ستكون أيضًا معرضة لسباقات البيانات مثل `remove_dir_all` نفسها. التخفيف الحالي يعمل كما هو مقصود خارج حالات سباقات البيانات.
المصادر
1POC لـ cve-2022-21658
الاستخدام المسؤول
استخدم معلومات الثغرات الأمنية فقط على الأنظمة التي تمتلكها أو المرخص لها باختبارها. يرتبط Kitploit ببيانات تعريف البحث العامة ولا يخزن أكواد الاستغلال أو الحمولات الضارة.