
Prueba de concepto del exploit para CVE-2026-41940, una cadena de omisión de autenticación en WHM/cPanel. Escáner multihilo que cambia la contraseña de root en objetivos vulnerables. Solo para pruebas autorizadas.
Este repositorio contiene un script de Prueba de Concepto (PoC) basado en la cadena de omisión de autenticación de cPanel/WHM (a través de la cookie whostmgrsession y cabeceras HTTP). El script cambia la contraseña de root tras una intrusión exitosa y escribe el resultado en un archivo.
Utilice este software únicamente en sistemas para los que tenga permiso explícito (su propio entorno de laboratorio, pentest contratado, prueba de seguridad aprobada por el proveedor). El acceso no autorizado es delito en la mayoría de los países. Este README es solo para investigación de seguridad y concienciación defensiva; los autores no se hacen responsables del mal uso.
targets.txt)https/login), fuga de /cpsess mediante inyección CRLF, activación de do_token_denied, verificación con /json-api/versionres.txtHost (escenarios de proxy inverso / host virtual)ThreadPoolExecutor)#!/usr/bin/env python2.7 — el script usa sintaxis de Python 2 y urllib / urlparse)requirements.txtpip install -r requirements.txt
Nota: En Python 2, el paquete futures es necesario para concurrent.futures (listado en el archivo). Para portar el script a Python 3, es necesario adaptar las diferencias en urllib, urlparse, print, unicode/str y similares; esto no se ha realizado en este repositorio.
python CVE-2026-41940.py <archivo_lista_objetivos> [--hostname HOST_CANONICO] [--threads N] [--timeout SEGUNDOS]
Salida:
res.txt en formato de URL e información de sesiónAuthorization / cookies y redirecciones inesperadas.├── CVE-2026-41940.py # Script principal
├── requirements.txt # Dependencias pip
└── README.md
Cambiar contraseñas en sistemas de producción tras una intrusión conlleva riesgo de pérdida de datos e interrupción del servicio. Pruebe en entornos de laboratorio aislados y no productivos, y con permiso por escrito; comparta los hallazgos mediante procesos de divulgación coordinada (coordinated disclosure).
| Argumento | Descripción |
|---|
list_file | Un objetivo por línea (host o URL; si no hay http://, se añade https://) |
--hostname | Fuerza el nombre canónico a usar en Host: y la lógica asociada en todas las peticiones |
--threads | Número de hilos concurrentes (por defecto: 15) |
--timeout | Tiempo de espera de conexión en segundos (por defecto: 15) |