Cómo proteger tu servidor cPanel/WHM frente a CVE-2026-41940 (omisión de autenticación)

¿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.103 como 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
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:

  1. Purga todas las sesiones (forzará un nuevo login a todos los usuarios):
    rm -f /var/cpanel/sessions/{cache,preauth,raw}/*
  2. Fuerza el cambio de contraseña de root y de todas las cuentas de WHM.
  3. Audita /var/log/wtmp, /usr/local/cpanel/logs/access_log y /usr/local/cpanel/logs/login_log en busca de accesos no autorizados.
  4. Busca mecanismos de persistencia: cron jobs nuevos, claves SSH añadidas, binarios sospechosos.
  5. 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

  1. Confirma la versión con /usr/local/cpanel/cpanel -V.
  2. Ejecuta el script de detección al menos una vez tras actualizar.
  3. 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.

Fuentes

Ficheros Adjuntos
ioc_checksessions_files.sh
404kb
Etiquetas