
إثبات المفهوم (PoC) لثغرة حرمان الخدمة CVE-2021-37740 في البرامج الثابتة v3.0.3 من SCN-IP100.03 وSCN-IP000.03 من MDT. تم إصلاح الخلل في البرامج الثابتة v3.0.4.
CVE-2021-37740 هي ثغرة في حرمان الخدمة (DoS) تؤثر على البرامج الثابتة v3.0.3 لموجه KNXnet/IP Secure SCN-IP100.03 وواجهة SCN-IP000.03 من MDT. إطار KNXnet/IP Secure معدّل بعناية يؤدي إلى جهاز لا يستجيب للطلبات اللاحقة، مما يتطلب إعادة تشغيل لاستعادة العمليات الطبيعية. يحتوي هذا المستودع على إثبات مفهوم يوضح كيف يمكن تشغيل الخلل، والذي تم تطويره أصلاً للإفصاح المنسق عن الثغرة.
يمكن للمهاجم استغلال الثغرة عن طريق إنشاء اتصال TCP مع الجهاز المستهدف، يليه إرسال إطار SESSION_REQUEST مع حقل طول إجمالي معدّل، يحتوي على قيمة 0x0259 أو أعلى.
لن تستجيب الأجهزة المتأثرة بالثغرة لإطارات KNXnet/IP Secure في أي اتصال. SESSION_REQUEST هو أول إطار يتم إرساله أثناء المصافحة لبروتوكول البث الأحادي KNXnet/IP Secure، كما هو محدد بواسطة ISO 22510:2019.
من المفترض أن يكون طوله ثابتاً عند 46 بايت. تتطلب المواصفة أن يتم تجاهل الإطارات ذات الطول المخالف.
يتطلب Python 3 للنصوص البرمجية المقدمة في هذا المستودع. healthcheck.py مخصص لاختبار ما إذا كان الجهاز لا يزال مستجيباً.
يقوم بإنشاء اتصال TCP مع الجهاز المستهدف ويحاول بدء مصافحة البث الأحادي لـ KNXnet/IP Secure.
إذا أرسل الجهاز رداً، فسيتم طباعته بصيغة ست عشرية إلى stdout.
يحاول poc.py تشغيل ثغرة DoS عن طريق إرسال إطار SESSION_REQUEST غير الصحيح. إذا كان الجهاز ضعيفاً، فإن عمليات تنفيذ healthcheck.py اللاحقة لن تنتج رداً، ما لم يتم إعادة تشغيل الجهاز المستهدف.
يمكن تنفيذ النصوص البرمجية باستخدام الأوامر التالية، حيث يجب استبدال <insert IP address> بعنوان IP الفعلي (على سبيل المثال 192.168.2.137).
python3 healthcheck.py -t <insert IP address>
python3 poc.py -t <insert IP address>
على نظام Windows، قد يلزم تغيير الاسم المستعار لـ Python من python3 إلى python. إذا كان الجهاز المستهدف ينفذ نقطة التحكم على منفذ غير 3671، فيجب تعديل المنفذ في النص البرمجي وفقاً لذلك.
تم إصلاح الثغرة في البرامج الثابتة v3.0.4، كما هو موثق في سجل التغييرات للبرامج الثابتة لـ MDT. تثبيت أحدث إصدار من البرامج الثابتة يعالج المشكلة. يتم توفير تعليمات تحديث البرامج الثابتة وملف .hex على موقع MDT الإلكتروني.
يتم توزيع إثبات المفهوم بموجب ترخيص MIT.
تنزيل:
التغييرات: