Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-93616-check — مدقق حالة التصحيح الآمن غير المصادق عليه لـ Check Point CPM RCE CVE-2026-93616؛ يستكشف تسجيل الدخول SOAP الخاص بـ UpgradeSvcRemote على TCP 19009 دون استغلال. | Kitploit
أدوات/GitHubGitHub/bishopfox/cve-2026-93616-check
أدوات دفاعيةماسحات الثغرات الأمنيةتحليل الثغرات الأمنيةالاستغلالأمن الشبكاتاختبار الاختراقأداة الوصول عن بعد
GitHubbishopfox/cve-2026-93616-check

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-93616-check

مدقق حالة التصحيح الآمن غير المصادق عليه لـ Check Point CPM RCE CVE-2026-93616؛ يستكشف تسجيل الدخول SOAP الخاص بـ UpgradeSvcRemote على TCP 19009 دون استغلال.

عرض المستودع
منذ يوم واحدلم تتم المراجعة بعد

Check Point Security Management تنفيذ تعليمات برمجية عن بُعد دون مصادقة — نص برمجي لكشف الثغرة الأمنية

فحص حالة الترقيع دون مصادقة للثغرة CVE-2026-93616، وهي اجتياز المسار (directory traversal) دون مصادقة في خادم Check Point Security Management (CPM) الذي يصل إلى Runtime.exec()، وتم إصلاحها في sk1000171 بتاريخ 2026-09-22. CWE-22، CVSS 9.8 حرجة (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)، ويجري استغلالها في البيئة الفعلية. Check Point هي الجهة المنسّقة (CNA)؛ وقد تم تحديد المشكلة من الاستغلال في البيئة الفعلية بدلاً من تقرير خارجي.

يكشف خادم CPM عن خدمات ويب SOAP على منفذ TCP 19009. تمرّر طريقة تسجيل الدخول loginAsApplicationReadOnlyPublicSession في UpgradeSvcRemote معامل targetVersion الخاص بها إلى مسار نظام ملفات يُمرَّر إلى Runtime.exec دون تحقق، لذا يمكن لمتصل غير مصادق عليه إعادة توجيه التنفيذ إلى نص برمجي يختاره المهاجم. يضيف الإصلاح نمط Bean Validation إلى targetVersion يرفض فاصل المسار.

يُبلّغ النص البرمجي عمّا إذا كان هذا الإصلاح موجوداً على كل هدف. وهو يرسل محرفاً واحداً غير قانوني في targetVersion، وليس تسلسل اجتياز أبداً، ولا يقوم بالمصادقة، ولا يرفع ملفاً، ولا ينفّذ أي شيء على الهدف. النتيجة غير VULNERABLE لا تعني بحد ذاتها أن الهدف مُرقَّع؛ انظر تفسير النتائج غير القابلة للاستغلال.

يتم التعامل مع إصدارات نهاية الدعم بشكل صريح. على المسارات الأقدم من R81.10 تأخذ طريقة تسجيل الدخول معاملات أقل، لذا يتم رفض الفحص الأساسي بواسطة فك تسلسل XML قبل أن يمكن قراءة حالة الترقيع. عندما يرفض خادم Check Point الفحص بهذه الطريقة، يرسل النص البرمجي استدعاءً متابعاً واحداً بالشكل الأقدم للمعاملات. إذا تم عندئذٍ إرسال طريقة تسجيل الدخول، فإن الهدف هو إصدار متأثر لم تنشر Check Point له إصلاحاً أبداً، ويكون الحكم VULNERABLE مع السبب affected-eos-no-fix. لا يحمل الاستدعاء المتابع أي mode ولا أي targetVersion، لذا فهو أيضاً لا يرسل شيئاً للتحقق منه ولا شيئاً للاجتياز. وهذا يسدّ ثغرة كان من الممكن أن يُقرأ فيها خادم قديم على أنه غير قابل للتحديد.

الاستخدام

# هدف واحد (المنفذ الافتراضي هو 19009)
./cve_2026_93616_check.py mgmt.example.com

# منفذ صريح
./cve_2026_93616_check.py mgmt.example.com:19009

# عدة أهداف
./cve_2026_93616_check.py mds-a.example.com mds-b.example.com

# فحص قائمة، هدف واحد في كل سطر (تعليقات '#' مسموح بها)، إخراج مختصر
./cve_2026_93616_check.py -f targets.txt --brief

# إخراج قابل للقراءة آلياً لخطوط الأنابيب
./cve_2026_93616_check.py -f targets.txt --json > results.json

Python 3.8+، المكتبة القياسية فقط — لا حزم خارجية.

شغّل الأداة ضد خوادم الإدارة (Security Management، وMulti-Domain Management، وLog، وMulti-Domain Log، وSmartEvent)، وليس ضد البوابات. يستهدف الفحص مستمع CPM SOAP على منفذ TCP 19009، وهو ما لا تشغّله البوابات.

الخيارات

العلمالوصف
TARGETهدف واحد أو أكثر بصيغة HOST[:PORT]؛ المنفذ الافتراضي هو 19009
-f, --targets-file FILEقراءة الأهداف من ملف (واحد في كل سطر؛ تعليقات #)
-p, --port PORTالمنفذ الافتراضي عندما يحذف الهدف المنفذ (الافتراضي: 19009)
--timeout SECSالمهلة لكل فحص (الافتراضي: 15)
--workers Nالأهداف المتزامنة (الافتراضي: 16)؛ يبقى الإخراج بترتيب الإدخال
-b, --briefسطر واحد محاذى لكل هدف، لفحص العديد من المضيفات
--jsonإخراج JSON منظّم، بما في ذلك علامات الفحص لكل هدف
--no-colorتعطيل الإخراج الملوّن (يحترم أيضاً NO_COLOR وغير TTY)

أمثلة

خادم قابل للاستغلال (الإخراج الافتراضي؛ تُعرض العلامة [!] وVULNERABLE باللون الأحمر على TTY):

$ ./cve_2026_93616_check.py mgmt.example.com
[!] mgmt.example.com:19009: VULNERABLE  [dispatched-without-validation]
      loginAsApplicationReadOnlyPublicSession accepted an illegal targetVersion and dispatched it; the fix's input validation is absent

خادم مُرقَّع:

$ ./cve_2026_93616_check.py mgmt-dr.example.com
[+] mgmt-dr.example.com:19009: PATCHED  [validation-constraint-present]
      the server rejected an illegal targetVersion with the input-validation constraint added by the fix (Jumbo Hotfix R82.10 Take 45 or equivalent)

خادم إدارة Check Point استجاب لكنه لم يرسل طريقة تسجيل الدخول، لذا تعذّرت قراءة حالة الترقيع:

$ ./cve_2026_93616_check.py log.example.com
[?] log.example.com:19009: INCONCLUSIVE  [cpm-no-dispatch]
      a Check Point management fault came back, but the UpgradeSvcRemote login method did not dispatch, so patch state could not be read

عدة أهداف مع --brief:

$ ./cve_2026_93616_check.py -f targets.txt --brief; echo "exit: $?"
VULNERABLE    mgmt.example.com:19009           dispatched-without-validation
PATCHED       mgmt-dr.example.com:19009        validation-constraint-present
INCONCLUSIVE  log.example.com:19009            cpm-no-dispatch
UNAFFECTED    web.example.com:19009            not-cpm
ERROR         offline.example.com:19009        unreachable
exit: 1

إخراج JSON مع --json. تُضمَّن علامات الفحص حتى يمكن التحقق من الحكم مقابل ما احتواه الرد فعلاً:

$ ./cve_2026_93616_check.py mgmt.example.com mgmt-dr.example.com --json
[
  {
    "target": "mgmt.example.com:19009",
    "verdict": "VULNERABLE",
    "reason": "dispatched-without-validation",
    "detail": "loginAsApplicationReadOnlyPublicSession accepted an illegal targetVersion and dispatched it; the fix's input validation is absent",
    "http_status": 500,
    "probe": {
      "http_status": 500,
      "saw_validation": false,
      "saw_dispatch": true,
      "saw_cpm": true,
      "note": ""
    }
  },
  {
    "target": "mgmt-dr.example.com:19009",
    "verdict": "PATCHED",
    "reason": "validation-constraint-present",
    "detail": "the server rejected an illegal targetVersion with the input-validation constraint added by the fix (Jumbo Hotfix R82.10 Take 45 or equivalent)",
    "http_status": 500,
    "probe": {
      "http_status": 500,
      "saw_validation": true,
      "saw_dispatch": true,
      "saw_cpm": true,
      "note": ""
    }
  }
]

هل من الآمن تشغيله؟

الفحص مخصص للاستخدام ضد أنظمة الإنتاج:

  • لا يقوم بالمصادقة. لا تُقدَّم أي جلسة أو بيانات اعتماد أو شهادة عميل. وهو يراقب كيفية تعامل الخادم مع معامل واحد مشوّه، وهو ما يعتمد على الإصدار المثبَّت.
  • لا يرسل تسلسل اجتياز أبداً. يضع الفحص الأساسي محرفاً واحداً غير قانوني (!) في targetVersion؛ هذا المحرف الواحد كافٍ لإطلاق تحقق الإصدار المُرقَّع، ولا يمكنه الهروب من دليل كما يفعل فاصل المسار. لا يحمل فحص المتابعة القديم أي targetVersion على الإطلاق.
  • لا ينفّذ أي شيء. يحذف الفحص الأساسي عنصر domainId، لذا على خادم غير مُرقَّع تُطلق الطريقة استثناء NullPointerException أثناء بناء معاملاتها، قبل أن يصل ReflectionUtils إلى Runtime.exec. وحتى بدون ذلك، تُحلّ قيمة الفحص إلى دليل غير موجود، لذا لا يوجد نص برمجي لتشغيله. يرسل الفحص القديم اسم تطبيق ومهلة فقط، لذا ليس لديه ما يبني منه مساراً.
  • لا يرفع ملفاً. يستخدم نصف كتابة الملف في سلسلة الاستغلال خدمة مختلفة، وهي خدمة لا يستدعيها هذا البرنامج أبداً.
  • يفتح اتصال TCP واحداً لكل فحص ويغلقه بعد قراءة الرد.

بصمة الطلب والسجل

#الاستدعاءمتىالغرض
1UpgradeSvcRemote.loginAsApplicationReadOnlyPublicSession (الشكل الحالي)دائماًفحص حالة الترقيع
2UpgradeSvcRemote.loginAsApplicationReadOnlyPublicSession (الشكل القديم)فقط إذا رُفض الاستدعاء 1 عند فك التسلسل بواسطة خادم Check Pointتأكيد إصدار نهاية الدعم

تُسجَّل الفحوصات في $MDS_FWDIR/log/cpm.elg. يسجّل الخادم المُرقَّع رفض تحقق؛ ويسجّل الخادم غير المُرقَّع الإرسال وNullPointerException الخاص به؛ ويسجّل خادم نهاية الدعم خطأ فك تسلسل للاستدعاء 1 وإرسالاً للاستدعاء 2. يرسل كلا الفحصين اسم التطبيق bf-check (كما يرسل الاستدعاء 1 القيمة bf-check!)، وهو ما يمكن التعرف عليه في السجل على أنه هذه الأداة وليس هجوماً.

كيف يعمل

يضيف الإصلاح نمط Bean Validation، ^[A-Za-z0-9._-]*$، إلى معامل targetVersion في كل طريقة UpgradeSvcRemote تأخذه. يسمح النمط بسلسلة إصدار لكنه لا يسمح بفاصل مسار، وهو ما يسدّ الاجتياز إلى Runtime.exec. يرسل الفحص محرفاً واحداً غير قانوني ويقرأ الطريقة التي يستجيب بها الخادم:

تنزيل الأداة