NGINX, im Besitz von F5, ist ein weltweit am häufigsten genutzter Reverse-Proxy-Server. NGINX ist auch eine kritische Infrastruktur des globalen Internets. Nun hat ein Sicherheitsforschungsunternehmen eine risikoreiche Sicherheitslücke in der Software aufgedeckt. Die Schwachstelle trägt die Nummer CVE-2026-42945. Es gibt ein Problem mit einem Heap-Pufferüberlauf in der NGINX-Skript-Engine, das seit 18 Jahren besteht.

Ein Angreifer muss lediglich eine sorgfältig konstruierte HTTP-Anfrage an einen exponierten NGINX-Server senden, um den Server aus der Ferne zu übernehmen. NGINX macht fast 30 % der wichtigsten globalen Website-Server- und Reverse-Proxy-Felder aus, sodass diese Schwachstelle eine große Anzahl von Internetdiensten beeinträchtigen kann.
Beeinflusst die NGINX-Ontologie und mehrere Derivate:
Diese Sicherheitslücke wurde ursprünglich in der 2008 veröffentlichten NGINX-Version 0.6.27 eingeführt. Danach wurde die Sicherheitslücke lange Zeit nicht entdeckt und lauerte bis heute. Diese Sicherheitslücke betrifft die NGINX-Versionen 0.6.27 bis 1.30.0 sowie verschiedene NGINX-Derivate, die F5 kommerziellen Kunden zur Verfügung stellt. Zu den betroffenen Derivatprodukten gehören unter anderem NGINX WAF, F5 WAF, NGINX Gateway Fabric, NGINX Ingress Controller usw.
Die auslösenden Bedingungen der Sicherheitslücke sind sehr verborgen. Wenn die folgenden beiden Anweisungen gleichzeitig in der NGINX-Konfigurationsdatei erscheinen, wird die Sicherheitslücke aktiviert:
rewrite ^/api/(.*)$ /internal?migrated=true; # 重写规则末尾带 “?” set $original_endpoint $1; # 使用正则捕获组
Das Forschungsteam, das die Sicherheitslücke entdeckte, wies darauf hin, dass die Hauptursache der Sicherheitslücke in der Skript-Engine (ngx_http_script.c) von ngx_http_rewrite_module liegt. Wenn die Rewrite-Anweisung ein Fragezeichen enthält, wird das persistente is_args-Flag gesetzt, aber in der anschließenden Berechnungsphase der Set-Anweisungslänge verwendet die Engine eine neue gelöschte Sub-Engine, was dazu führt, dass die URL-Escape-Logik während der Längenberechnung übersprungen wird.
In der eigentlichen Kopierphase wird die Haupt-Engine verwendet, um die Funktion ngx_escape_uri auszulösen, um Zeichen wie + und & zu maskieren. Der Puffer wird entsprechend der nicht maskierten Länge zugewiesen, der erweiterte Inhalt wird jedoch geschrieben, was letztendlich zu einem kontrollierbaren Heap-Pufferüberlauf führt.
F5 hat die NGINX-Version 1.31.0/1.30.1 veröffentlicht, um Folgendes zu beheben:
Nach Erhalt der Schwachstellenbenachrichtigung bestätigte F5 die Schwachstelle schnell. Nachdem F5 den Fix vorbereitet hatte, veröffentlichten die Forscher die Schwachstelle öffentlich. Daher müssen Benutzer, die derzeit NGINX und seine Derivate verwenden, auf die neueste Version aktualisieren, die nicht betroffen ist. Die Open-Source-Version von NGINX muss auf Version 1.30.1 oder 1.31.0 aktualisiert werden. Auch andere ältere Versionen, etwa die Versionen 0.6.27~1.30.0, sind von der Schwachstelle betroffen.
Versionsinformationen zu anderen Derivaten finden Sie im F5 Security Bulletin: https://my.f5.com/manage/s/article/K000160932