Onderzoekers ontdekken 18 jaar oude fout in NGINX
In dit artikel:
Securityonderzoekers van Depthfirst hebben een kritieke kwetsbaarheid in NGINX aangetroffen (CVE-2026-42945, CVSS 9,2) die sinds ongeveer 2008 in vrijwel alle moderne NGINX-versies aanwezig zou zijn. De fout zit in de wijze waarop NGINX rewrite- en set-directives worden verwerkt: de interne scriptengine berekent onjuist hoeveel geheugen nodig is voor het samenstellen van nieuwe URL’s en schrijft daarna meer data weg dan gereserveerd, wat een heap buffer overflow veroorzaakt.
Depthfirst toonde aan dat die geheugenfout in een proof-of-concept kon worden omgezet naar remote code execution (RCE). De exploit misbruikt de voorspelbare geheugenindeling van NGINX-workerprocessen en manipuleert meerdere verbindingen om interne pointers te overschrijven en systeemcommando’s uit te voeren. Volgens de onderzoekers is geen authenticatie nodig voor de aanval, maar de gepubliceerde PoC draaide met ASLR uitgeschakeld — een beveiligingsmechanisme dat zulke exploits normaal moeilijker maakt.
De praktische toepasbaarheid op volledig geharde productiesystemen wordt door andere onderzoekers, onder wie Kevin Beaumont, en door AlmaLinux genuanceerd: het is relatief eenvoudig om workerprocessen te laten crashen (DoS), maar betrouwbare RCE met ASLR aan lijkt aanzienlijk lastiger en vereist specifieke omstandigheden en configuraties. De risicovolle scenario’s betreffen vooral combinaties van rewrite en set, die veel voorkomen in reverse proxies, API-gateways en Kubernetes-ingresscontrollers.
F5 heeft inmiddels patches uitgebracht: NGINX Open Source 1.31.0 en 1.30.1, en NGINX Plus R36 P4 en R32 P6. Als tijdelijke maatregel raadt F5 aan kwetsbare rewrite-regels aan te passen door genummerde regex-captures ($1, $2) te vervangen door named captures, wat een belangrijke voorwaarde voor exploitatie wegneemt.
Opmerkelijk is dat Depthfirst grotendeels automatisch te werk ging: hun autonome analysesysteem identificeerde vijf potentiële geheugenproblemen in de NGINX-broncode, waarvan vier door NGINX zijn bevestigd. Naast de RCE-kwetsbaarheid werden ook problemen gevonden die extreem geheugenverbruik kunnen veroorzaken in SCGI/uWSGI-modules, een use-after-free in de SSL-module en een out-of-bounds read in de charset-module. Organisaties die NGINX of op NGINX gebaseerde F5-producten gebruiken, wordt dringend aangeraden te patchen of mitigaties toe te passen.