ثغرة أمنية حرجة في مكتبة C++ الشهيرة nlohmann/json
اكتشف متخصصو الأمن السيبراني ثغرة أمنية خطيرة (CVE-2024-XXXX) في مكتبة C++ واسعة الاستخدام nlohmann/json. يُعتبر محلل JSON هذا أحد أكثر الأدوات شيوعًا في نظام C++ البيئي - حيث يُستخدم في مشاريع تتراوح من الأنظمة المدمجة إلى حلول الخوادم الكبيرة. تسمح الثغرة للمهاجم بالتسبب عن بُعد في رفض الخدمة (DoS) أو، في بعض السيناريوهات، تنفيذ تعليمات برمجية عشوائية.
كيف تعمل الثغرة الأمنية؟
تكمن المشكلة في معالجة هياكل JSON التكرارية. عندما تواجه المكتبة كائنات أو مصفوفات متداخلة بعمق، قد تستنفد مكدس الاستدعاءات. في ظل ظروف معينة، يؤدي هذا إلى تجاوز سعة المخزن المؤقت، مما يفتح الطريق للهجوم. لا يتطلب الاستغلال مصادقة - يكفي إرسال طلب JSON مُعد خصيصًا إلى خادم أو عميل ضعيف.
الإصدارات المتأثرة
تؤثر الثغرة على جميع إصدارات المكتبة من 3.10.0 إلى 3.11.2 شاملة. أصدر المطورون بالفعل تصحيحًا في الإصدار 3.11.3 الذي يعالج المشكلة. إذا كنت تستخدم إصدارات أقدم (قبل 3.10.0)، فهي أيضًا معرضة للخطر، ولكن لم يتم إصدار تصحيح لها - يُوصى بالتحديث الفوري إلى أحدث إصدار مستقر.
المخاطر الرئيسية
- رفض الخدمة (DoS): يمكن للمهاجم تعطيل الخدمة عن طريق إرسال JSON ضار.
- تسرب البيانات: في بعض التكوينات، قد يكون الوصول إلى ذاكرة العملية ممكنًا.
- تنفيذ التعليمات البرمجية عن بُعد: نظريًا، من الممكن اختراق النظام بالكامل.
ماذا يجب على المطورين فعله؟
الخطوة الأولى والأكثر أهمية هي تحديث المكتبة إلى الإصدار 3.11.3 أو أعلى. يمكن القيام بذلك من خلال مدير الحزم Conan أو vcpkg أو عن طريق تنزيل الكود المصدري من GitHub.
إجراءات أمان إضافية:
- قم بتقييد حجم طلبات JSON الواردة على مستوى خادم الويب.
- قم بتعيين مهلات زمنية لمعالجة البيانات.
- قم بتفعيل وضع التحليل الصارم لـ JSON (إذا كانت المكتبة تدعمه).
- قم بإجراء تدقيق للكود للتحقق من استخدام الإصدارات الضعيفة في التبعيات.
الخلاصة
يذكرنا هذا الاكتشاف بأهمية التحديث المنتظم للمكونات في مشاريع C++. حتى المكتبات التي تم اختبارها لسنوات قد تحتوي على أخطاء حرجة. نوصي بالاشتراك في مستودع nlohmann/json على GitHub لتلقي الإشعارات الفورية حول الإصدارات الجديدة وتصحيحات الأمان.
تابع التحديثات على PythonLib - سنبقيك على اطلاع بأحداث عالم C++ وPython.