
# Verificador de vulnerabilidades multi-OS para CVE-2026-31431 (kernel Linux) e CVE-2026-41940 (cPanel)
| Família | Distribuições |
|---|
| Debian | Ubuntu, Debian, Linux Mint, Pop!_OS |
| RHEL | RHEL, CentOS, AlmaLinux, Rocky Linux, Oracle Linux, CloudLinux, Fedora, Amazon Linux |
| SUSE | SLES, openSUSE |
Execute diretamente do GitHub:
curl -fsSL https://raw.githubusercontent.com/sebinxavi/cve-checker-2026/main/cve_check_2026.sh | sudo bash
Ou baixe e execute (recomendado para revisão antes):
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| Arquivo | Finalidade |
|---|---|
/var/log/cve_check_2026_<timestamp>.log | Log de depuração completo |
/var/log/cve_check_2026_<timestamp>.report.txt | Resumo executivo |
Faz fallback para /tmp/ se /var/log não for gravável.
| Código | Significado |
|---|---|
0 | Tudo limpo ou não aplicável |
1 | Erro no script (não é root, ferramentas ausentes) |
2 | Pelo menos um CVE confirmado como vulnerável |
Útil para automação e integração com monitoramento.
| Status | Significado |
|---|---|
SAFE | Corrigido confirmado |
LIKELY_SAFE | Provavelmente seguro; não confirmado no changelog |
MITIGATED | Mitigação aplicada (ex.: lista negra de módulo) |
VULNERABLE | Patch disponível, não aplicado |
VULNERABLE_EOL | Versão em fim de vida, sem caminho de patch |
NOT_APPLICABLE | Software não instalado |
UNKNOWN | Não foi possível determinar automaticamente |
Para servidores cPanel, um script complementar está disponível para auditar arquivos de sessão ativos em busca de sinais de exploração do CVE-2026-41940.
Escaneia todos os arquivos em /var/cpanel/sessions/raw/ e categoriza cada sessão em um de três grupos:
| Resultado | Significado |
|---|---|
LEGITIMATE | Login real via handle_form_login, passwd ou api_token |
SUSPICIOUS | Payload de ataque (badpass) detectado — sem acesso bem-sucedido |
COMPROMISED | Payload de ataque com resposta HTTP 200 no log de acesso — root foi acessado |
curl -fsSL https://raw.githubusercontent.com/sebinxavi/cve-checker-2026/main/cpanel_session_checker.sh | sudo bash
Ou baixe primeiro:
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
Se sessões COMPROMISED forem encontradas:
/tmp, cron e ~/.ssh/authorized_keys em busca de malwareO servidor comprometido não pode ser confiável — migre todas as contas cPanel para um servidor limpo recém-provisionado:
# No servidor comprometido — liste todas as contas
/usr/local/cpanel/bin/whmapi1 listaccts | grep 'user:'
# Empacote cada conta para migração
/scripts/pkgacct <username> /backup
# No servidor limpo — restaure cada conta
/scripts/restorepkg /backup/cpmove-<username>.tar.gz
Alternativamente, use WHM >> Transfer Tool >> Copy Multiple Accounts from Another Server para migração em massa com fidelidade total.
Após a migração: atualize o DNS para apontar os domínios para o IP do novo servidor, verifique se todos os sites carregam e, em seguida, descomissione ou reinstale o servidor comprometido.
Se apenas sessões SUSPICIOUS forem encontradas (todas bloqueadas):
/scripts/upcp --forcerm -f /var/cpanel/sessions/raw/*Após um ataque (mesmo que bloqueado), é recomendado rotacionar todas as senhas das contas cPanel como precaução. Um script dedicado está disponível para redefinir em massa todas as senhas das contas cPanel e salvá-las em um arquivo 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
Após entregar com segurança as novas senhas aos titulares das contas, exclua o CSV:
shred -u /root/cpanel_new_passwords_*.csv
Atualize o cPanel para o build corrigido do seu branch:
| Branch | Build Mínimo |
|---|---|
| 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
# ou
yum update kernel -y && reboot
Com KernelCare (sem necessidade de reboot):
kcarectl --update
Aviso: Não execute
apt upgrade -yem um servidor cPanel — isso pode atualizar pacotes gerenciados pelo cPanel (Apache, PHP, MySQL) e quebrar serviços.
Atualize apenas o pacote do kernel:
apt-get install --only-upgrade linux-image-generic linux-headers-generic linux-generic
reboot
Verifique após o reboot:
uname -r
Instâncias AWS EC2 usam um pacote de kernel diferente (linux-aws) — os nomes de pacotes genéricos não atualizarão o kernel em execução:
apt update && apt install --only-upgrade -y \
linux-aws \
linux-image-aws \
linux-headers-aws && \
echo "" && \
echo "Em execução atual : $(uname -r)" && \
echo "Iniciará em seguida: $(ls /boot/vmlinuz-* | sort -V | tail -1 | sed 's|/boot/vmlinuz-||')"
Confirme o kernel de inicialização exibido e, em seguida, reinicie:
reboot
Coloque o módulo vulnerável na lista negra para impedir que ele seja carregado:
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
# ou
dracut --force # família RHEL
Execute novamente o verificador para confirmar que o status mudou para MITIGATED. Aplique o patch do kernel na próxima janela de manutenção.
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 é somente leitura — ele apenas inspeciona o sistema e grava arquivos de log. Ele não:
Sempre revise o script antes de canalizar curl para bash. Veja o código-fonte em:
https://github.com/sebinxavi/cve-checker-2026/blob/main/cve_check_2026.sh
MIT — veja LICENSE
Sebin Xavi — sebintech.com