Detección y remediación en un solo paso para servidores cPanel/WHM comprometidos mediante CVE-2026-41940, incluyendo comprobaciones de IOC, limpieza de malware, bloqueo de C2 y parcheo.
Detección y remediación en un solo paso para servidores cPanel/WHM comprometidos mediante CVE-2026-41940 y la campaña del botnet
nuclear.x86.
El 28 de abril de 2026, cPanel reveló una vulnerabilidad de omisión de autenticación pre-autenticación (CVE-2026-41940, CVSS 9.8) que afecta a todas las versiones compatibles de cPanel y WHM posteriores a la 11.40. Una única petición HTTP al puerto 2087 permite a un atacante no autenticado inyectar una sesión user=root y acceder directamente a WHM.
Se ha observado explotación activa en el mundo real desde al menos el 23 de febrero de 2026, seis semanas antes de que se publicara el parche. La campaña que hemos limpiado en múltiples servidores instala un botnet Linux llamado nuclear.x86 junto con un minero de criptomonedas basado en XMRig.
Este repositorio contiene un único script Bash que:
/scripts/upcp --forceEstá diseñado para proveedores de hosting, administradores de sistemas y revendedores de cPanel que necesitan hacer un triaje rápido de un parque de servidores.
Si wget o curl devuelven Killed al intentar descargar archivos, el malware sigue en ejecución — nuclear.x86 mata activamente las herramientas de descarga para impedir la limpieza. Ejecuta primero el paso de eliminación (el script lo hace por ti en el modo --fix).
Si no puedes descargar este script por ese motivo, cópialo y pégalo por SSH desde tu portátil, o usa scp.
# Como root, en el servidor cPanel:
cd /root
wget https://raw.githubusercontent.com/shahidmallaofficial/cpanel-cve-2026-41940-fix/main/fix-cpanel-cve-2026-41940.sh
chmod +x fix-cpanel-cve-2026-41940.sh
O con curl:
cd /root
curl -fsSLO https://raw.githubusercontent.com/shahidmallaofficial/cpanel-cve-2026-41940-fix/main/fix-cpanel-cve-2026-41940.sh
chmod +x fix-cpanel-cve-2026-41940.sh
Una sola línea (revisa el script primero y luego ejecútalo):
cd /root && \
curl -fsSLO https://raw.githubusercontent.com/shahidmallaofficial/cpanel-cve-2026-41940-fix/main/fix-cpanel-cve-2026-41940.sh && \
chmod +x fix-cpanel-cve-2026-41940.sh && \
less fix-cpanel-cve-2026-41940.sh
# Después de revisarlo, ejecútalo:
./fix-cpanel-cve-2026-41940.sh
Verifica antes de ejecutar. Este script se ejecuta como root y modifica el estado del sistema. Ábrelo y léelo primero. No canalices scripts aleatorios de internet directamente a
bash.
# 1. Solo escaneo (por defecto, sin cambios — siempre seguro de ejecutar)
./fix-cpanel-cve-2026-41940.sh
# 2. Escaneo + remediación, con una solicitud de confirmación para cada acción destructiva
./fix-cpanel-cve-2026-41940.sh --fix
# 3. Automático completo: arreglo + actualización de cPanel + limpieza de caché + endurecimiento ligero
./fix-cpanel-cve-2026-41940.sh --auto
# 4. Sin supervisión (sin solicitudes — para cron, jump-boxes, scripts de flota)
./fix-cpanel-cve-2026-41940.sh --auto -y
# 5. Ayuda
./fix-cpanel-cve-2026-41940.sh --help
| Código | Significado |
|---|---|
0 | Limpio — no se detectaron IOCs |
2 | Indicadores de compromiso detectados (revisa el informe) |
1 / otros | Fallo previo al vuelo (no es root, no es un servidor cPanel, etc.) |
/var/log/cpanel-cve-fix/scan-<TIMESTAMP>.log/var/log/cpanel-cve-fix/report-<TIMESTAMP>.txt/root/cve-cleanup-backup-<TIMESTAMP>/| # | Comprobación | Qué detecta |
|---|---|---|
| 1 | Versión de cPanel vs. versiones parcheadas | Hosts vulnerables (lista las 6 versiones parcheadas) |
| 2 | Procesos en ejecución | nuclear.x86, xmrig, cpuminer, minerd, xmr-stak, 4thepool_miner |
| 3 | Conexiones de red activas | Las tres IPs de C2 conocidas + puertos de mining-pool |
| 4 | Archivos de historial de shell | Comandos IOC en bash_history / zsh_history |
| 5 | Integridad del firewall | El paso de sabotaje iptables -F |
| 6 | Directorio raw de sesiones de cPanel | Archivos de sesión falsificados user=root |
| 7 | /tmp, /var/tmp, /dev/shm | Ejecutables recientemente colocados |
| 8 | Entradas de cron | Persistencia (sistema + por usuario) |
| 9 | Archivos authorized_keys | Nuevas claves SSH — auditoría de solo lectura |
| 10 | Registros de acceso de cPanel | Firmas de explotación Go-http-client / python-requests |
| 11 | Binarios críticos | wget / curl / ls / ps manipulados (mtime + verificación RPM) |
/var/cpanel/sessions/raw/* (con copia de seguridad tar.gz primero)cpsrvd, cpdavd, cphulkd, queueprocd, dnsadmin/scripts/upcp --force (solo en --auto)rndc flush), los registros antiguos de journalLF_INTEGRITY de CSF si está disponibleEstas acciones causarían más daño que beneficio si se ejecutan sin supervisión por SSH, así que van al informe de acciones manuales en su lugar:
/home/*/public_htmlPara barrer muchos servidores desde una jump-box:
mkdir -p reports
while read -r host; do
echo "=== $host ==="
scp fix-cpanel-cve-2026-41940.sh "root@${host}:/root/" >/dev/null
ssh "root@${host}" '/root/fix-cpanel-cve-2026-41940.sh --auto -y'
scp "root@${host}:/var/log/cpanel-cve-fix/report-*.txt" "reports/${host}.txt" 2>/dev/null
done < servers.txt
Luego filtra los informes:
grep -l "COMPROMISE INDICATORS PRESENT" reports/*
El script listará estas acciones en su informe. Ninguna de ellas puede automatizarse de forma segura.