¿Qué es CVE-2026-41940?
CVE-2026-41940 es una vulnerabilidad crítica de omisión de autenticación en cPanel & WHM (incluido DNSOnly) y WP Squared, con puntuación CVSS 9.8. Fue divulgada el 29 de abril de 2026 y el parche oficial salió el 28 de abril de 2026.
Es un fallo de inyección CRLF en el manejo de la cookie whostmgrsession. Un atacante remoto y sin autenticación puede inyectar caracteres CR/LF en cabeceras de autorización básica, omitir el cifrado de sesión y escribir propiedades arbitrarias (por ejemplo user=root) en el archivo de sesión. Resultado: acceso completo a WHM como root.
Está siendo explotada activamente y existe prueba de concepto pública. Si tu WHM está expuesto a internet y no has actualizado, considera el servidor potencialmente comprometido hasta verificar lo contrario con el script de detección al final de este artículo.
¿Te afecta?
Sí, si ejecutas cPanel & WHM 11.40 o posterior sin parchear, o cualquier versión vulnerable de WP Squared.
Versiones que contienen la corrección:
- cPanel & WHM:
11.86.0.41,11.110.0.97,11.118.0.63,11.126.0.54,11.130.0.19,11.132.0.29,11.134.0.20,11.136.0.5 - cPanel & WHM en CentOS 6 / CloudLinux 6 (rama 110.0.50):
11.110.0.103como actualización directa - WP Squared:
136.1.7
Cómo comprobar la versión instalada
/usr/local/cpanel/cpanel -V
Compara la salida con la lista anterior. Si tu versión es inferior dentro de la misma rama, estás vulnerable.
Cómo mitigar
| Opción | Ideal para | ¿Duradero? |
|---|---|---|
| Actualizar cPanel & WHM | Todos, solución definitiva | Sí |
| Bloquear puertos al exterior | Mientras programas la actualización | Temporal |
| Detener cpsrvd y cpdavd | Si no puedes actualizar ni filtrar puertos | Temporal |
Opción A: actualizar cPanel & WHM (recomendada)
Si tienes los updates automáticos deshabilitados o tu configuración fija una versión, deberás actualizar manualmente. En servidores CentOS 7 / CloudLinux 7 establece primero la rama soportada:
whmapi1 set_tier tier=11.110
En CentOS 6 / CloudLinux 6 con la versión 110.0.50:
whmapi1 set_tier tier=11.110.0.103
Lanza la actualización y reinicia cpsrvd al terminar:
/scripts/upcp --force
/usr/local/cpanel/cpanel -V
/scripts/restartsrv_cpsrvd --hard
Opción B: bloquear los puertos de cPanel/WHM (workaround temporal)
Bloquea el tráfico entrante en los puertos 2083, 2087, 2095 y 2096 en el firewall hasta aplicar el parche. Ejemplo con firewalld limitando el acceso a una IP administrativa:
for p in 2083 2087 2095 2096; do
firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=TU_IP_ADMIN port port=$p protocol=tcp accept"
firewall-cmd --permanent --add-rich-rule="rule family=ipv4 port port=$p protocol=tcp drop"
done
firewall-cmd --reload
Opción C: detener los servicios cpsrvd y cpdavd
Si no puedes filtrar puertos, deshabilita y detén los servicios afectados:
whmapi1 configureservice service=cpsrvd enabled=0 monitored=0 && \
whmapi1 configureservice service=cpdavd enabled=0 monitored=0 && \
/scripts/restartsrv_cpsrvd --stop && \
/scripts/restartsrv_cpdavd --stop
Esto deja WHM, cPanel y webdav fuera de servicio. Es una medida de emergencia mientras programas la actualización.
Detectar indicios de compromiso
cPanel publicó un script que analiza los archivos de sesión en /var/cpanel/sessions/ en busca de indicadores de explotación. Descárgalo desde el archivo adjunto al final de este artículo y ejecútalo como root:
/bin/bash ./ioc_checksessions_files.sh
El script clasifica los hallazgos en cuatro niveles:
- CRITICAL: artefacto de explotación confirmado (sesión inyectada y promovida a autenticada). Trata el servidor como comprometido.
- WARNING: sesión sospechosa con marcadores incoherentes. Investiga manualmente.
- ATTEMPT: intento de explotación fallido (sin promoción de sesión). El servidor probablemente no fue comprometido por este intento, pero confirma con la auditoría de logs.
- INFO: anomalía menor, normalmente sin compromiso.
Para obtener el volcado completo de cada sesión sospechosa, añade --verbose. Para purgar las sesiones afectadas tras la revisión: --purge --yes.
Códigos de salida: 0 sin hallazgos, 1 sólo ATTEMPT/INFO, 2 al menos un CRITICAL o WARNING.
Si el script reporta hallazgos CRITICAL o WARNING:
- Purga todas las sesiones (forzará un nuevo login a todos los usuarios):
rm -f /var/cpanel/sessions/{cache,preauth,raw}/* - Fuerza el cambio de contraseña de root y de todas las cuentas de WHM.
- Audita
/var/log/wtmp,/usr/local/cpanel/logs/access_logy/usr/local/cpanel/logs/login_logen busca de accesos no autorizados. - Busca mecanismos de persistencia: cron jobs nuevos, claves SSH añadidas, binarios sospechosos.
- Si confirmas un compromiso a nivel root, migra las cuentas a un servidor limpio o reinstala el sistema y restaura desde respaldos.
Después de mitigar
- Confirma la versión con
/usr/local/cpanel/cpanel -V. - Ejecuta el script de detección al menos una vez tras actualizar.
- Rota credenciales sensibles (root, MySQL, API tokens) si tu WHM estaba expuesto a internet sin parche desde antes del 28 de abril de 2026.
¿Necesitas ayuda?
Abre un ticket en soporte.telecu.cloud y menciona la referencia: CVE-2026-41940.