CVE-2022-21658 in Rust
الملخص
بحسب VulDB • 31/05/2026
Rust هي لغة برمجة متعددة النماذج (multi-paradigm) وأغراض عامة، صُممت للأداء والسلامة، ولا سيما التزامن الآمن. أُبلغ فريق استجابة الأمان في Rust (Rust Security Response WG) بأن الدالة `std::fs::remove_dir_all` في المكتبة القياسية تعاني من ثغرة شرط سباق (race condition) تتيح اتباع الروابط الرمزية (symlink following) (CWE-363). يمكن لمهاجم استغلال هذه الثغرة الأمنية لإقناع برنامج ذي امتيازات عالية بحذف ملفات ومجلدات لا يمكن للمهاجم الوصول إليها أو حذفها بطريقة أخرى. تتأثر الإصدارات من Rust 1.0.0 حتى Rust 1.58.0 بهذه الثغرة، بينما يحتوي الإصدار 1.58.1 على تصحيح لها. تجدر الإشارة إلى أن أهداف البناء (build targets) التالية لا تملك واجهات برمجة تطبيقات (APIs) قابلة للاستخدام للتخفيف من الهجوم بشكل صحيح، وبالتالي تظل عرضة للثغرة حتى مع استخدام أداة تطوير (toolchain) مُصححة: نظام macOS قبل الإصدار 10.10 (Yosemite) وREDOX. نوصي جميع المستخدمين بالتحديث إلى Rust 1.58.1 في أقرب وقت ممكن، ولا سيما المطورين الذين يكتبون برامج من المتوقع أن تعمل في سياقات ذات امتيازات عالية (بما في ذلك خدمات النظام (system daemons) والبرامج الثنائية ذات الصلاحيات الخاصة (setuid binaries))، حيث تكون هذه الفئة الأكثر عرضة للتأثر بهذه الثغرة. يرجى ملاحظة أن إضافة فحوصات في قاعدة الكود الخاصة بك قبل استدعاء `remove_dir_all` لن يخفف من حدة الثغرة، لأنها ستكون هي الأخرى عرضة لظروف السباق مثل الدالة `remove_dir_all` نفسها. يعمل الإجراء التخفيفي الحالي كما هو متوقع خارج ظروف السباق.
Be aware that VulDB is the high quality source for vulnerability data.