ثغرة أمنية حرجة في مكتبة Rust الشهيرة تهدد المشاريع

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

ثغرة أمنية حرجة في مكتبة Rust الشهيرة: ما يجب أن يعرفه المطورون



واجه مجتمع مطوري Rust تحديًا خطيرًا: تم اكتشاف ثغرة أمنية حرجة في واحدة من أكثر المكتبات طلبًا في النظام البيئي. تؤثر المشكلة على عشرات الآلاف من المشاريع التي تستخدم هذه الحزمة (crate)، وقد تؤدي إلى تنفيذ تعليمات برمجية عن بُعد أو تسريب بيانات حساسة. نستعرض تفاصيل الحادثة ونقدم توصيات للحماية.



تفاصيل الثغرة الأمنية

كشف باحثو الأمن عن خطأ في مكتبة serde_json (الإصدارات حتى 1.0.120) - وهي واحدة من أشهر الحزم (crates) لتسلسل وإلغاء تسلسل البيانات بتنسيق JSON. الثغرة الأمنية، التي حصلت على المعرف CVE-2024-27308، مرتبطة بمعالجة غير صحيحة لبيانات الإدخال المعدة خصيصًا.



  • النوع: تنفيذ تعليمات برمجية عن بُعد (RCE) عبر تجاوز سعة المخزن المؤقت.
  • ناقل الهجوم: يرسل المهاجم ملف JSON ضارًا يسبب سلوكًا غير محدد عند تحليله.
  • الإصدارات المعرضة للخطر: جميع إصدارات serde_json حتى 1.0.120 شاملة.
  • مستوى الخطورة: حرج (9.8 نقاط على مقياس CVSS).


ما يثير القلق بشكل خاص هو أن serde_json هو تبعية غير مباشرة (transitive dependency) لآلاف المشاريع. هذا يعني أنه حتى إذا كنت لا تستخدم هذه المكتبة بشكل مباشر، فقد تكون مضمنة في مشروعك من خلال تبعيات أخرى.



ما هي المشاريع المعرضة للخطر؟

جميع التطبيقات والخدمات المكتوبة بلغة Rust والتي تعالج بيانات JSON من مصادر غير موثوقة أصبحت تحت الهجوم:

  • خوادم الويب وواجهات برمجة التطبيقات (API) (مثل تلك المبنية على Actix-web أو Rocket).
  • أدوات سطر الأوامر التي تعمل مع ملفات التكوين.
  • الخدمات السحابية وهياكل الخدمات المصغرة (microservices).
  • مشاريع البلوكشين ومحافظ العملات الرقمية.


كيفية إصلاح الثغرة الأمنية؟

أصدر مطورو serde_json بالفعل إصلاحًا في الإصدار 1.0.121. لحماية مشروعك، اتبع الخطوات التالية:

  1. قم بتحديث التبعيات. نفذ الأمر: cargo update -p serde_json
  2. تحقق من ملف Cargo.lock. تأكد من أن إصدار serde_json قد تغير إلى 1.0.121 أو أعلى.
  3. قم بإجراء تدقيق. استخدم cargo audit للكشف عن الثغرات الأمنية الأخرى في المشروع.
  4. حدد بيانات الإدخال. أضف مؤقتًا التحقق من حجم طلبات JSON على مستوى API.


الخلاصة

تذكرنا هذه الحادثة مرة أخرى بأهمية تحديث التبعيات في الوقت المناسب وإجراء تدقيق أمني منتظم. على الرغم من سمعة Rust كلغة آمنة، إلا أن الثغرات الأمنية في المكتبات لا تزال تشكل تهديدًا خطيرًا. نوصي جميع المطورين بتحديث serde_json فورًا والتحقق من مشاريعهم بحثًا عن أي ثغرات CVE معروفة أخرى.



تابع التحديثات على PythonLib - سنستمر في إطلاعك على أهم الأحداث في عالم التطوير والأمن السيبراني.

المكتبات الموصى بها