PT-2026-81171 · Unknown · Ocpp 1.6 Client
CVSS v3.1
9.8
حرجة
| المتجه | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
اسم البرنامج المعرض للخطر والإصدارات المتأثرة
عميل OCPP 1.6 (لم يتم تحديد الإصدارات المتأثرة)
الوصف
يوجد تجاوز سعة مخزن المكدس في الدالة
parse getconfig msg() الموجودة في الملف subsys/net/lib/ocpp/ocpp j.c. تحدث المشكلة عندما يقوم المعالج بمعالجة طلب GetConfiguration من نظام مركزي ويستخدم دالة strcpy() غير محدودة لنسخ سلسلة key بتنسيق JSON يسيطر عليها المهاجم إلى مخزن مؤقت ثابت سعة 50 بايت skey[CISTR50] الموجود في subsys/net/lib/ocpp/ocpp.c. ونظرًا لأن طول قيمة key لا يقتصر إلا على حجم مخزن الاستقبال (CONFIG OCPP RECV BUFFER SIZE)، يمكن للمهاجم الذي يتحكم في نقطة نهاية النظام المركزي أو الذي ينفذ هجومًا من نوع «الرجل في الوسط» (man-in-the-middle) على اتصال غير مشفر أن يرسل طلبًا يحتوي على حقل key يتجاوز 50 بايت. قد يؤدي ذلك إلى حدوث «تحطيم المكدس» (stack smash) في مؤشر ترابط القارئ ocpp wsreader()، مما يؤدي إلى رفض الخدمة أو احتمال تنفيذ تعليمات برمجية عن بُعد.التوصيات
استبدل الدالة
strcpy() بدالة محدودة strncpy(key, payload.key[0], CISTR50 - 1) وتأكد من إنهاء السلسلة صراحةً بحرف NUL.استغلال
إصلاح
RCE
DoS
Memory Corruption
وجدت خطأً في الوصف؟ لديك ما تضيفه؟ لا تتردد في مراسلتنا 👾
تصنيف نقاط الضعف
المعرّفات ذات الصلة
المنتجات المتأثرة
Ocpp 1.6 Client