
# Vérificateur de vulnérabilités multi-OS pour CVE-2026-31431 (noyau Linux) et CVE-2026-41940 (cPanel)
| Famille | Distributions |
|---|
| Debian | Ubuntu, Debian, Linux Mint, Pop!_OS |
| RHEL | RHEL, CentOS, AlmaLinux, Rocky Linux, Oracle Linux, CloudLinux, Fedora, Amazon Linux |
| SUSE | SLES, openSUSE |
Exécution directe depuis GitHub :
curl -fsSL https://raw.githubusercontent.com/sebinxavi/cve-checker-2026/main/cve_check_2026.sh | sudo bash
Ou téléchargement puis exécution (recommandé pour examen préalable) :
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| Fichier | Objectif |
|---|---|
/var/log/cve_check_2026_<timestamp>.log | Journal de débogage complet |
/var/log/cve_check_2026_<timestamp>.report.txt | Résumé exécutif |
Repli vers /tmp/ si /var/log n'est pas accessible en écriture.
| Code | Signification |
|---|---|
0 | Tout est clair ou non applicable |
1 | Erreur du script (pas root, outils manquants) |
2 | Au moins une CVE confirmée vulnérable |
Utile pour l'automatisation et l'intégration de la surveillance.
| Statut | Signification |
|---|---|
SAFE | Correctif confirmé |
LIKELY_SAFE | Probablement sûr ; non confirmé dans le journal des modifications |
MITIGATED | Contournement appliqué (ex. liste noire de modules) |
VULNERABLE | Correctif disponible, non appliqué |
VULNERABLE_EOL | Version en fin de vie, aucun correctif disponible |
NOT_APPLICABLE | Logiciel non installé |
UNKNOWN | Impossible de déterminer automatiquement |
Pour les serveurs cPanel, un script complémentaire est disponible pour auditer les fichiers de session actifs afin de détecter des signes d'exploitation de la CVE-2026-41940.
Analyse tous les fichiers dans /var/cpanel/sessions/raw/ et classe chaque session dans l'un des trois groupes suivants :
| Résultat | Signification |
|---|---|
LEGITIMATE | Connexion réelle via handle_form_login, passwd ou api_token |
SUSPICIOUS | Charge utile d'attaque (badpass) détectée — aucun accès réussi |
COMPROMISED | Charge utile d'attaque avec réponse HTTP 200 dans le journal d'accès — accès root obtenu |
curl -fsSL https://raw.githubusercontent.com/sebinxavi/cve-checker-2026/main/cpanel_session_checker.sh | sudo bash
Ou téléchargement préalable :
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 des sessions COMPROMISED sont trouvées :
/tmp, cron et ~/.ssh/authorized_keys pour détecter des logiciels malveillantsLe serveur compromis ne peut pas être considéré comme fiable — migrez tous les comptes cPanel vers un serveur propre nouvellement provisionné :
# Sur le serveur compromis — listez tous les comptes
/usr/local/cpanel/bin/whmapi1 listaccts | grep 'user:'
# Empaquetez chaque compte pour la migration
/scripts/pkgacct <username> /backup
# Sur le serveur propre — restaurez chaque compte
/scripts/restorepkg /backup/cpmove-<username>.tar.gz
Vous pouvez également utiliser WHM >> Transfer Tool >> Copy Multiple Accounts from Another Server pour une migration groupée avec une fidélité totale.
Après la migration : mettez à jour le DNS pour pointer les domaines vers la nouvelle adresse IP du serveur, vérifiez que tous les sites se chargent, puis décommissionnez ou réimagez le serveur compromis.
Si seules des sessions SUSPICIOUS sont trouvées (toutes bloquées) :
/scripts/upcp --forcerm -f /var/cpanel/sessions/raw/*Après une attaque (même bloquée), il est recommandé de faire pivoter tous les mots de passe des comptes cPanel par précaution. Un script dédié est disponible pour réinitialiser en masse tous les mots de passe des comptes cPanel et les enregistrer dans un fichier CSV sécurisé.
whmapi1/root/cpanel_new_passwords_<timestamp>.csv (mode 600)/root/cpanel_passwd_reset_<timestamp>.logcurl -fsSL https://raw.githubusercontent.com/sebinxavi/cve-checker-2026/main/cpanel_mass_passwd_reset.sh | sudo bash
Après avoir livré en toute sécurité les nouveaux mots de passe aux titulaires de comptes, supprimez le CSV :
shred -u /root/cpanel_new_passwords_*.csv
Mettez à jour cPanel vers la version corrigée de votre branche :
| Branche | Version minimale |
|---|---|
| 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
Avec KernelCare (pas de redémarrage requis) :
kcarectl --update
Avertissement : N'exécutez pas
apt upgrade -ysur un serveur cPanel — cela peut mettre à niveau des paquets gérés par cPanel (Apache, PHP, MySQL) et casser des services.
Mettez à niveau uniquement le paquet du noyau :
apt-get install --only-upgrade linux-image-generic linux-headers-generic linux-generic
reboot
Vérifiez après le redémarrage :
uname -r
Les instances AWS EC2 utilisent un paquet de noyau différent (linux-aws) — les noms de paquets génériques ne mettront pas à jour le noyau en cours d'exécution :
apt update && apt install --only-upgrade -y \
linux-aws \
linux-image-aws \
linux-headers-aws && \
echo "" && \
echo "En cours d'exécution : $(uname -r)" && \
echo "Démarrage au prochain boot : $(ls /boot/vmlinuz-* | sort -V | tail -1 | sed 's|/boot/vmlinuz-||')"
Confirmez le noyau de démarrage suivant affiché, puis redémarrez :
reboot
Mettez le module vulnérable en liste noire pour empêcher son chargement :
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 # Famille RHEL
Réexécutez le vérificateur pour confirmer que le statut passe à MITIGATED. Appliquez le correctif du noyau lors de la prochaine fenêtre de maintenance.
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
Ce script est en lecture seule — il inspecte uniquement le système et écrit des fichiers journaux. Il ne pas :
Examinez toujours le script avant de rediriger curl vers bash. Consultez la source à l'adresse :
https://github.com/sebinxavi/cve-checker-2026/blob/main/cve_check_2026.sh
MIT — voir LICENSE
Sebin Xavi — sebintech.com