
Dies ist ein statisches Erkennungstool für Verteidigungs- und Intranet-Untersuchungen zu CVE-2026-42945, mit dem geprüft wird, ob NGINX-Konfigurationen im Zusammenhang mit ngx_http_rewrite_module risikoreiche rewrite-Kombinationen enthalten.
Dies ist ein statisches Erkennungstool für CVE-2026-42945 für Verteidigung und interne Netzwerkprüfung, das NGINX-ngx_http_rewrite_module-bezogene Konfigurationen auf risikoreiche Rewrite-Kombinationen prüft.
Dieses Projekt stellt keinen Exploit-Code bereit, sendet keine bösartigen HTTP-Anfragen und versucht nicht, Abstürze oder Remote-Codeausführung auszulösen. Es liest lediglich lokale NGINX-Konfigurationsdateien und hilft Sicherheitsteams zu beurteilen, ob ein Upgrade oder eine Überarbeitung der Konfiguration erforderlich ist.
CVE-2026-42945 ist eine Heap-Pufferüberlauf-Schwachstelle im ngx_http_rewrite_module von NGINX Open Source und NGINX Plus.
Das in der öffentlichen Ankündigung beschriebene Risikoszenario umfasst im Wesentlichen:
rewrite-Direktive;rewrite-, if- oder set-Direktiven;$1, $2 in der Konfiguration;?.Zu den Fix-Versionen von NGINX Open Source gehören 1.30.1, 1.31.0 und neuere Versionen. Für NGINX Plus gelten die in der Herstellerankündigung genannten Fix-Versionen.
Referenzlinks:
Es wird nur Python 3 benötigt, keine Drittanbieter-Abhängigkeiten.
python3 --version
Es wird empfohlen, zunächst die vollständig gerenderte NGINX-Konfiguration zu exportieren:
nginx -T > nginx-rendered.conf
python3 cve_2026_42945_checker.py nginx-rendered.conf
Alternativ kann auch direkt ein Konfigurationsverzeichnis gescannt werden:
python3 cve_2026_42945_checker.py /etc/nginx
JSON-Ausgabe:
python3 cve_2026_42945_checker.py --json nginx-rendered.conf
Falls der Konfigurationsexport keine NGINX-Versionsinformationen enthält, kann die Version manuell angegeben werden, um die Beurteilung zu unterstützen:
python3 cve_2026_42945_checker.py --json --nginx-version 1.30.0 nginx-rendered.conf
SARIF-Ausgabe, bequem für den Import in GitHub code scanning oder interne Sicherheitsplattformen:
python3 cve_2026_42945_checker.py --sarif nginx-rendered.conf > cve-2026-42945.sarif
0: Keine risikoreichen Konfigurationsmuster gefunden;1: Mindestens ein risikoreiches Konfigurationsmuster gefunden;2: Lesen der Eingabedatei oder des Pfads fehlgeschlagen.Zu den wichtigsten Feldern in den Erkennungsergebnissen gehören:
versions: Aus der Konfiguration oder den Parametern erkannte NGINX-Versionen und das Beurteilungsergebnis;findings: Position, Ursache und Beleg der getroffenen Risikokonfigurationen;summary: Anzahl der gescannten Dateien, Anzahl der Funde und höchste Risikostufe.Ein Beispiel für ein Risikoergebnis weist auf einen Beleg wie den folgenden hin:
rewrite ... ?$1; -> set ... $1;
Dies bedeutet, dass die Konfigurationsstruktur den in der öffentlichen Ankündigung beschriebenen Risikobedingungen ähnelt und vorrangig überprüft werden muss.
NGINX vorrangig auf eine behobene Version aktualisieren:
1.30.1, 1.31.0 oder neuere Versionen;Zusätzlich wird empfohlen, die Rewrite-Regeln zu überprüfen:
$1, $2 möglichst vermeiden;rewrite-, if-, set-Kombinationen vereinfachen;nginx -T exportierte vollständige Konfiguration scannen.Dieses Tool ist ein statischer Konfigurationsdetektor, kein vollständiger Schwachstellenverifizierer. Es kann möglicherweise keine Abdeckung für Folgendes bieten:
Bitte verwenden Sie es als Hilfswerkzeug für die interne Netzwerkprüfung und Konfigurationsauditierung, nicht als alleinige Grundlage für die Schwachstellenbewertung.
Tests ausführen:
python -m pytest
Das Repository enthält bereits eine GitHub-Actions-Workflow, die bei Push und Pull Request automatisch Tests ausführt.