
Un outil de détection statique pour CVE-2026-42945, destiné à la défense et à l'inspection du réseau interne, permettant de vérifier si les configurations NGINX liées à ngx_http_rewrite_module contiennent des combinaisons de rewrite à haut risque.
Il s'agit d'un outil de détection statique CVE-2026-42945 destiné à la défense et à l'inspection des réseaux internes, utilisé pour vérifier si les configurations liées à ngx_http_rewrite_module de NGINX contiennent des combinaisons rewrite à haut risque.
Ce projet ne fournit pas de code d'exploitation, n'envoie pas de requêtes HTTP malveillantes et ne tente pas de déclencher des crashs ou d'exécuter du code à distance. Il se contente de lire les fichiers de configuration NGINX locaux pour aider les équipes de sécurité à décider si une mise à niveau ou une modification de configuration est nécessaire.
CVE-2026-42945 est une vulnérabilité de débordement de tampon tas dans le module ngx_http_rewrite_module de NGINX Open Source et NGINX Plus.
Les scénarios de risque décrits dans l'avis public comprennent globalement :
rewrite ;rewrite, if ou set ;$1, $2 ;rewrite contient ?.Les versions corrigées de NGINX Open Source incluent 1.30.1, 1.31.0 et les versions ultérieures. Pour NGINX Plus, veuillez vous référer aux versions corrigées indiquées dans l'avis du fournisseur.
Liens de référence :
Seulement Python 3, aucune dépendance externe.
python3 --version
Il est recommandé d'exporter d'abord la configuration NGINX complète rendue :
nginx -T > nginx-rendered.conf
python3 cve_2026_42945_checker.py nginx-rendered.conf
Vous pouvez également scanner directement le répertoire de configuration :
python3 cve_2026_42945_checker.py /etc/nginx
Sortie JSON :
python3 cve_2026_42945_checker.py --json nginx-rendered.conf
Si l'exportation de la configuration ne contient pas d'informations sur la version NGINX, vous pouvez spécifier manuellement la version pour faciliter l'évaluation :
python3 cve_2026_42945_checker.py --json --nginx-version 1.30.0 nginx-rendered.conf
Sortie SARIF, pratique pour l'importer dans GitHub code scanning ou sur une plateforme de sécurité interne :
python3 cve_2026_42945_checker.py --sarif nginx-rendered.conf > cve-2026-42945.sarif
0 : Aucun motif de configuration à haut risque trouvé ;1 : Au moins un motif de configuration à haut risque trouvé ;2 : Échec de lecture du fichier ou du chemin d'entrée.Les champs importants dans les résultats de détection incluent :
versions : Version NGINX identifiée depuis la configuration ou les paramètres et résultat d'évaluation ;findings : Emplacements, raisons et preuves des configurations à risque détectées ;summary : Nombre de fichiers scannés, nombre de découvertes et niveau de risque le plus élevé.Un exemple de résultat de risque indiquera une preuve comme celle-ci :
rewrite ... ?$1; -> set ... $1;
Cela indique que la forme de cette configuration est similaire aux conditions de risque décrites dans l'avis public et nécessite une révision prioritaire.
Mettez d'abord à niveau NGINX vers une version corrigée :
1.30.1, 1.31.0 ou versions ultérieures ;Il est également recommandé de revoir les règles rewrite :
$1, $2 ;rewrite, if, set ;nginx -T avant de la publier.Cet outil est un détecteur de configuration statique, pas un validateur complet de vulnérabilités. Il peut ne pas couvrir :
Utilisez-le comme un outil auxiliaire pour l'inspection des réseaux internes et l'audit de configuration, et non comme la seule base d'évaluation des vulnérabilités.
Exécuter les tests :
python -m pytest
Le dépôt contient déjà un workflow GitHub Actions qui exécute automatiquement les tests lors des push et des pull requests.