
CVE-2026-42945: nginx-rift vulnerability analysis and detection script
Outil local d'évaluation des risques pour CVE-2026-42945 (Nginx Rift). Contrairement à ceux qui vous disent simplement « si la version est affectée, c'est dangereux », ce script vérifie couche par couche les trois conditions qui déterminent réellement le risque et donne une conclusion adaptée à votre situation.
CVE-2026-42945 est une vulnérabilité de dépassement de tampon de tas (CWE-122) présente depuis 18 ans dans le module ngx_http_rewrite_module de nginx, avec un score CVSS 4.0 de 9,2. Mais l'annonce contient une condition clé :
"Exécution de code possible sur les systèmes sans protection ASLR"
Pour qu'une RCE soit possible, trois conditions doivent être simultanément remplies :
rewrite + setSi l'une d'elles manque, le pire des scénarios est un crash du processus worker suivi d'un redémarrage automatique (DoS), et non une prise de contrôle du serveur.
Analyse détaillée : « La bombe cachée de nginx depuis 18 ans : la vulnérabilité 9.2 a-t-elle explosé votre serveur ? »
# Exécution (nécessite sudo pour lire la configuration complète de nginx)
sudo bash check_cve_2026_42945.sh
Le script vérifie successivement les quatre éléments suivants ; si l'un d'eux n'est pas satisfait, il s'arrête prématurément et donne une conclusion :
Cas 1 : Version affectée mais absence de configuration déclenchant la vulnérabilité (le plus courant)
[*] Version de nginx : 1.24.0
[!] La version 1.24.0 est dans la plage affectée, poursuite de la vérification des conditions de déclenchement...
[*] Analyse de la configuration nginx (vérification de la combinaison rewrite+set déclenchant la vulnérabilité)...
[✓] Aucune configuration déclenchant la vulnérabilité (combinaison rewrite+set) trouvée
Conclusion : Version affectée mais pas de configuration déclenchant la vulnérabilité, risque réel très faible
Recommandation : Planifier la mise à niveau vers 1.30.1 / 1.31.0, pas d'urgence
Cas 2 : Configuration déclenchant présente, ASLR activé, renforcement de compilation complet
[!] La version 1.24.0 est dans la plage affectée, poursuite de la vérification des conditions de déclenchement...
[!] Configuration déclenchant la vulnérabilité trouvée :
→ location ~ ^/api/(.*)$ {
[✓] ASLR activé (niveau 2, randomisation complète)
→ Les conditions nécessaires à une exploitation fiable de RCE ne sont pas remplies, le pire des cas est un crash du worker (DoS)
[✓] -fcf-protection détecté (protection du flux de contrôle Intel CET)
[✓] FORTIFY_SOURCE=3 détecté
[✓] Full RELRO détecté (GOT en lecture seule)
[✓] Protection de la pile détectée (stack-protector)
Niveau de risque : Faible
Recommandation : Mettre à niveau vers nginx 1.30.1 / 1.31.0 lors de la prochaine fenêtre de maintenance
Cas 3 : Configuration déclenchant présente, ASLR désactivé
[!] Configuration déclenchant la vulnérabilité trouvée :
→ location ~ ^/api/(.*)$ {
[✗] ASLR désactivé ! Le risque de RCE augmente considérablement
Niveau de risque : Élevé (DoS certain / RCE possible)
Actions immédiates :
1. Supprimer ou modifier temporairement la configuration rewrite+set déclenchant la vulnérabilité
2. Confirmer que l'ASLR est activé : echo 2 | sudo tee /proc/sys/kernel/randomize_va_space
3. Mettre à niveau nginx : apt install nginx ou compiler et installer 1.30.1+
| Produit | Versions affectées | Version corrigée |
|---|---|---|
| NGINX Open Source | 0.6.27 – 1.30.0 | 1.30.1 / 1.31.0 |
| NGINX Plus | R32 – R36 | R36 P4 / R35 P2 / R32 P6 |
# Ubuntu / Debian
sudo apt update && sudo apt install nginx
# Vérifier la version
nginx -v
Annonce officielle : https://my.f5.com/manage/s/article/K000161019
Le script a été testé dans les scénarios suivants :
Environnement de test : Ubuntu 22.04 LTS, nginx 1.24.0 (paquet officiel Ubuntu)
include peuvent ne pas être détectées (le script utilise nginx -T pour développer tous les includes, couvrant la grande majorité des cas)MIT
| Élément | Description |
|---|
| Version de nginx | Plage affectée : 0.6.27 – 1.30.0 |
| Configuration déclenchant la vulnérabilité | Présence simultanée d'une rewrite contenant ? et d'un set avec groupe de capture dans le même bloc location |
| État de l'ASLR | Lecture de /proc/sys/kernel/randomize_va_space |
| Renforcement de la compilation | Détection de -fcf-protection / FORTIFY_SOURCE / Full RELRO / protection de la pile |
| Niveau | Signification | Rythme de traitement recommandé |
|---|
| Aucun impact | nginx non installé ou version déjà corrigée | Aucune action nécessaire |
| Très faible | Version affectée mais pas de configuration déclenchante | Mise à niveau lors de la prochaine maintenance de routine |
| Faible | Configuration déclenchante présente, mais ASLR + renforcement de compilation complets | Mise à niveau lors de la prochaine fenêtre de maintenance |
| Moyen | Configuration déclenchante présente, protection lacunaire | Mettre à niveau dès que possible, risque de disponibilité |
| Élevé | Configuration déclenchante + ASLR désactivé + renforcement manquant | Traiter immédiatement |