
# Comprobador de vulnerabilidades multi-SO para CVE-2026-31431 (kernel de Linux) y CVE-2026-41940 (cPanel)
| Familia | Distribuciones |
|---|
| Debian | Ubuntu, Debian, Linux Mint, Pop!_OS |
| RHEL | RHEL, CentOS, AlmaLinux, Rocky Linux, Oracle Linux, CloudLinux, Fedora, Amazon Linux |
| SUSE | SLES, openSUSE |
Ejecutar directamente desde GitHub:
curl -fsSL https://raw.githubusercontent.com/sebinxavi/cve-checker-2026/main/cve_check_2026.sh | sudo bash
O descargar y luego ejecutar (recomendado para revisión previa):
curl -fsSL -o cve_check_2026.sh https://raw.githubusercontent.com/sebinxavi/cve-checker-2026/main/cve_check_2026.sh
chmod +x cve_check_2026.sh
sudo ./cve_check_2026.sh
algif_aead / af_algapt, dnf, yum, zyppercpsrvd| Archivo | Propósito |
|---|---|
/var/log/cve_check_2026_<timestamp>.log | Registro de depuración completo |
/var/log/cve_check_2026_<timestamp>.report.txt | Resumen ejecutivo |
Se usa /tmp/ como respaldo si /var/log no es escribible.
| Código | Significado |
|---|---|
0 | Todo limpio o no aplicable |
1 | Error del script (no root, herramientas faltantes) |
2 | Al menos un CVE confirmado como vulnerable |
Útil para automatización e integración con monitorización.
| Estado | Significado |
|---|---|
SAFE | Parcheado confirmado |
LIKELY_SAFE | Probablemente seguro; no confirmado en el changelog |
MITIGATED | Mitigación aplicada (p. ej., lista negra de módulos) |
VULNERABLE | Parche disponible, no aplicado |
VULNERABLE_EOL | Versión fuera de soporte, sin ruta de parche |
NOT_APPLICABLE | Software no instalado |
UNKNOWN | No se pudo determinar automáticamente |
Para servidores cPanel, hay disponible un script complementario para auditar los archivos de sesión activos en busca de señales de explotación de CVE-2026-41940.
Escanea todos los archivos en /var/cpanel/sessions/raw/ y clasifica cada sesión en uno de tres grupos:
| Resultado | Significado |
|---|---|
LEGITIMATE | Inicio de sesión real vía handle_form_login, passwd o api_token |
SUSPICIOUS | Payload de ataque (badpass) detectado — sin acceso exitoso |
COMPROMISED | Payload de ataque con respuesta HTTP 200 en el registro de acceso — se accedió como root |
curl -fsSL https://raw.githubusercontent.com/sebinxavi/cve-checker-2026/main/cpanel_session_checker.sh | sudo bash
O descargar primero:
curl -fsSL -o cpanel_session_checker.sh https://raw.githubusercontent.com/sebinxavi/cve-checker-2026/main/cpanel_session_checker.sh
chmod +x cpanel_session_checker.sh
sudo ./cpanel_session_checker.sh
Si se encuentran sesiones COMPROMISED:
/tmp, cron y ~/.ssh/authorized_keys en busca de malwareEl servidor comprometido no es de confianza — migrar todas las cuentas de cPanel a un servidor limpio recién aprovisionado:
# En el servidor comprometido — listar todas las cuentas
/usr/local/cpanel/bin/whmapi1 listaccts | grep 'user:'
# Empaquetar cada cuenta para la migración
/scripts/pkgacct <username> /backup
# En el servidor limpio — restaurar cada cuenta
/scripts/restorepkg /backup/cpmove-<username>.tar.gz
Alternativamente, usar WHM >> Transfer Tool >> Copy Multiple Accounts from Another Server para migración masiva con fidelidad completa.
Después de la migración: actualizar el DNS para que los dominios apunten a la IP del nuevo servidor, verificar que todos los sitios carguen y luego retirar o reinstalar el servidor comprometido.
Si solo se encuentran sesiones SUSPICIOUS (todas bloqueadas):
/scripts/upcp --forcerm -f /var/cpanel/sessions/raw/*Después de un ataque (incluso si fue bloqueado), se recomienda rotar todas las contraseñas de las cuentas de cPanel como precaución. Hay un script dedicado para restablecer masivamente todas las contraseñas de cuentas de cPanel y guardarlas en un archivo CSV seguro.
whmapi1/root/cpanel_new_passwords_<timestamp>.csv (modo 600)/root/cpanel_passwd_reset_<timestamp>.logcurl -fsSL https://raw.githubusercontent.com/sebinxavi/cve-checker-2026/main/cpanel_mass_passwd_reset.sh | sudo bash
Después de entregar de forma segura las nuevas contraseñas a los titulares de las cuentas, eliminar el CSV:
shred -u /root/cpanel_new_passwords_*.csv
Actualizar cPanel a la compilación parcheada para tu rama:
| Rama | Compilación Mínima |
|---|---|
| 110.x | 11.110.0.97 |
| 118.x | 11.118.0.63 |
| 126.x | 11.126.0.54 |
| 132.x | 11.132.0.29 |
| 134.x | 11.134.0.20 |
| 136.x | 11.136.0.5 |
/scripts/upcp --force
/scripts/restartsrv_cpsrvd
Debian / Ubuntu:
apt update && apt upgrade -y && reboot
RHEL / AlmaLinux / CloudLinux:
dnf update kernel -y && reboot
# o
yum update kernel -y && reboot
Con KernelCare (sin necesidad de reinicio):
kcarectl --update
Advertencia: No ejecutar
apt upgrade -yen un servidor cPanel — puede actualizar paquetes gestionados por cPanel (Apache, PHP, MySQL) y romper servicios.
Actualizar solo el paquete del kernel:
apt-get install --only-upgrade linux-image-generic linux-headers-generic linux-generic
reboot
Verificar después del reinicio:
uname -r
Las instancias de AWS EC2 usan un paquete de kernel diferente (linux-aws) — los nombres de paquetes genéricos no actualizarán el kernel en ejecución:
apt update && apt install --only-upgrade -y \
linux-aws \
linux-image-aws \
linux-headers-aws && \
echo "" && \
echo "Actualmente en ejecución : $(uname -r)" && \
echo "Arrancará a continuación : $(ls /boot/vmlinuz-* | sort -V | tail -1 | sed 's|/boot/vmlinuz-||')"
Confirmar el kernel de arranque mostrado y luego reiniciar:
reboot
Poner en lista negra el módulo vulnerable para evitar que se cargue:
echo "blacklist algif_aead" >> /etc/modprobe.d/disable-algif-aead.conf
echo "blacklist af_alg" >> /etc/modprobe.d/disable-algif-aead.conf
update-initramfs -u # Debian/Ubuntu
# o
dracut --force # familia RHEL
Volver a ejecutar el comprobador para confirmar que el estado cambia a MITIGATED. Aplicar el parche del kernel en la próxima ventana de mantenimiento.
sudo tee /etc/cron.weekly/cve-check-2026 > /dev/null <<'EOF'
#!/bin/bash
curl -fsSL https://raw.githubusercontent.com/sebinxavi/cve-checker-2026/main/cve_check_2026.sh | bash
if [[ $? -eq 2 ]]; then
REPORT=$(ls -t /var/log/cve_check_2026_*.report.txt | head -1)
mail -s "[CVE ALERT] $(hostname) vulnerable" [email protected] < "${REPORT}"
fi
EOF
sudo chmod +x /etc/cron.weekly/cve-check-2026
for host in server1 server2 server3; do
ssh root@${host} "curl -fsSL https://raw.githubusercontent.com/sebinxavi/cve-checker-2026/main/cve_check_2026.sh | bash" \
> "report_${host}_$(date +%F).txt" &
done
wait
Este script es de solo lectura — solo inspecciona el sistema y escribe archivos de registro. No:
Revisa siempre el script antes de canalizar curl a bash. Ver el código fuente en:
https://github.com/sebinxavi/cve-checker-2026/blob/main/cve_check_2026.sh
MIT — ver LICENSE
Sebin Xavi — sebintech.com