3min Security

Onderzoekers ontdekken 18 jaar oude fout in NGINX

Onderzoekers ontdekken 18 jaar oude fout in NGINX

Onderzoekers hebben een kritieke kwetsbaarheid ontdekt in NGINX waarmee aanvallers op afstand code kunnen uitvoeren op servers die de populaire webserver gebruiken. De fout zou al sinds 2008 aanwezig zijn en treft volgens de onderzoekers vrijwel alle moderne versies van NGINX.

De kwetsbaarheid, geregistreerd als CVE-2026-42945, kreeg een CVSS-score van 9,2. Het probleem zit in de verwerking van rewrite- en set-directives binnen NGINX-configuraties. Deze functies worden veel gebruikt in reverse proxies, API-gateways en ingresscontrollers om URL’s dynamisch aan te passen of verzoekinformatie tijdelijk op te slaan.

Volgens securityonderzoekers van Depthfirst ontstaat het probleem door een fout in de interne scriptengine van NGINX. Die engine berekent eerst hoeveel geheugen nodig is om een nieuwe URL samen te stellen en schrijft daarna de uiteindelijke data weg. Door een inconsistentie in een interne statusvariabele wordt soms te weinig geheugen gereserveerd, terwijl tijdens de tweede stap meer data wordt geschreven dan voorzien. Dat leidt tot een heap buffer overflow.

Onderzoekers demonstreren RCE

De onderzoekers stellen dat zij erin slaagden de geheugenfout om te zetten in een werkende exploit voor remote code execution (RCE). Daarbij maakten zij gebruik van de voorspelbare geheugenstructuur van NGINX-workerprocessen. Door meerdere verbindingen te manipuleren en kwaadaardige data in het geheugen te plaatsen, konden zij interne pointers overschrijven en systeemcommando’s laten uitvoeren.

Volgens het onderzoek is de exploit zonder authenticatie uit te voeren. Wel werd de proof of concept getest met Address Space Layout Randomization, beter bekend als ASLR, uitgeschakeld. Dat beveiligingsmechanisme maakt geheugenaanvallen normaal moeilijker.

BleepingComputer meldt dat verschillende securityonderzoekers kanttekeningen plaatsen bij de praktische uitvoerbaarheid van de aanval op volledig geharde productiesystemen. Onder meer Kevin Beaumont wijst erop dat specifieke configuraties nodig zijn en dat de gepubliceerde exploit draait op een bewust kwetsbaar gemaakte omgeving.

Ook AlmaLinux nuanceert de impact. De Linux-distributie bevestigt dat het relatief eenvoudig is om NGINX-workerprocessen via de kwetsbaarheid te laten crashen, waardoor denial-of-service-aanvallen realistisch zijn. Betrouwbare remote code execution met ASLR ingeschakeld zou volgens AlmaLinux echter aanzienlijk moeilijker zijn.

Patches en tijdelijke workaround

De onderzoekers noemen vooral configuraties waarin rewrite en set samen worden gebruikt risicovol. Zulke combinaties komen veel voor in moderne API-infrastructuren en Kubernetes-omgevingen.

F5 heeft inmiddels patches uitgebracht voor getroffen versies van NGINX en bijbehorende producten. Fixes zijn beschikbaar in NGINX Open Source 1.31.0 en 1.30.1, evenals in NGINX Plus R36 P4 en R32 P6.

Voor organisaties die nog niet direct kunnen upgraden, adviseert F5 om kwetsbare rewrite-regels aan te passen. Daarbij moeten genummerde regex-captures zoals $1 en $2 worden vervangen door named captures. Volgens het bedrijf verdwijnt daarmee een belangrijke voorwaarde voor succesvolle exploitatie.

Autonoom analysesysteem vond meerdere kwetsbaarheden

Opvallend aan het onderzoek is dat de fouten grotendeels automatisch werden ontdekt door een autonoom analysesysteem van Depthfirst. Dat systeem analyseerde de broncode van NGINX en identificeerde volgens het bedrijf vijf potentiële geheugenfouten. Vier daarvan werden uiteindelijk bevestigd door NGINX.

Naast de kritieke RCE-kwetsbaarheid gaat het onder meer om een probleem dat extreem geheugenverbruik kan veroorzaken in SCGI- en uWSGI-modules, een use-after-free-bug in de SSL-module en een out-of-bounds read in de charset-module.

De onderzoekers melden dat de belangrijkste kwetsbaarheid aanwezig is in NGINX Open Source-versies van 0.6.27 tot en met 1.30.0. Ook verschillende commerciële producten van F5 op basis van NGINX zouden kwetsbaar zijn, waaronder NGINX Plus, App Protect WAF en diverse ingresscontrollers voor Kubernetes.