Een ‘nachtmerrie’, zo omschrijft Wiz meerdere kritieke kwetsbaarheden ontdekt in Ingress NGINX Controller voor Kubernetes. Deze securitylekken maken ongeautoriseerde toegang tot alle geheimen in een Kubernetes-cluster mogelijk, waardoor ze volledig overgenomen kunnen worden.
De kwetsbaarheden, waaronder CVE-2025-1097, CVE-2025-1098, CVE-2025-24514 en CVE-2025-1974, hebben een CVSS-score van 9.8 gekregen. Volgens de onderzoekers is maar liefst 43 procent van alle cloudomgevingen kwetsbaar voor deze aanvallen, waarbij meer dan 6.500 clusters direct risico lopen omdat ze de kwetsbare admission controllers publiekelijk blootstellen. Ook enkele Fortune 500-bedrijven draaien momenteel clusters die kwetsbaar én via het openbare internet toegankelijk zijn.
Wat is Ingress NGINX Controller?
Ingress NGINX Controller is een van de populairste ingress controllers voor Kubernetes en een kernproject binnen het Kubernetes-ecosysteem. Het heeft meer dan 18.000 sterren op GitHub. De controller fungeert als een toegangspoort voor inkomend verkeer naar Kubernetes-applicaties en routeert dit verkeer naar de juiste services en pods op basis van gedefinieerde regels. Uit Wiz-onderzoek blijkt dat meer dan 41 procent van alle internetgerichte Kubernetes-clusters Ingress NGINX gebruikt.
De kwetsbaarheid in detail
De kern van het probleem ligt in het admission controller-component van Ingress NGINX. Dit component valideert inkomende ingress-objecten voordat ze worden geïmplementeerd. Standaard zijn admission controllers zonder authenticatie toegankelijk via het netwerk, wat ze een aantrekkelijk doelwit maakt voor aanvallers.
Wanneer de Ingress NGINX admission controller een ingress-object verwerkt, bouwt het een NGINX-configuratie op en valideert deze met behulp van de NGINX-binary. De onderzoekers ontdekten dat het mogelijk is om tijdens deze fase willekeurige NGINX-configuraties te injecteren door een kwaadaardig ingress-object rechtstreeks naar de admission controller te sturen.
Tijdens de validatiefase zorgt de geïnjecteerde NGINX-configuratie ervoor dat de NGINX-validator code uitvoert, wat remote code execution (RCE) op de Ingress NGINX Controller-pod mogelijk maakt. De verhoogde rechten en onbeperkte netwerktoegang van de admission controller creëren “een kritiek escalatiepad”, zoals Wiz het aanstipt. Door dit lek te misbruiken kan een aanvaller willekeurige code uitvoeren en toegang krijgen tot alle clustergeheimen, wat kan leiden tot volledige overname van het cluster.
Mitigatie en detectie
De kwetsbaarheid is opgelost in Ingress NGINX Controller versie 1.12.1 en 1.11.5. Beheerders wordt sterk aangeraden om zo snel mogelijk te updaten naar deze versies en ervoor te zorgen dat het admission webhook-eindpunt niet extern wordt blootgesteld.
Als een onmiddellijke update niet mogelijk is (bijvoorbeeld doordat er kritieke workloads draaien), kunnen organisaties overwegen om strikte netwerkbeleid af te dwingen zodat alleen de Kubernetes API Server toegang heeft tot de admission controller, of de admission controller-component tijdelijk uit te schakelen. Aangezien business-critical workloads sowieso al beter beschermd moeten worden dan hun conventionele tegenhangers, moeten we aannemen (en hopen we) dat het merendeel van potentieel vatbare clusters al veilig afgeschermd is.
Kubernetes zijn niet inherent veilig of ‘secure by design’. Zoals de top 10 kwetsbaarheden die door OWASP zijn geïdentificeerd laten zien, kan het op allerlei manieren fout gaan voor organisaties. Zo werd in die top 10 al gewezen op risico’s zoals verkeerd geconfigureerde cluster-componenten en kwetsbare authenticatiemechanismen.
Ontdekking door Wiz Research
Wiz ontdekte deze kwetsbaarheden tijdens onderzoek naar Kubernetes Admission Controllers. Deze controllers vormen een vaak over het hoofd gezien aanvalsoppervlak in Kubernetes-omgevingen omdat ze vaak zonder authenticatie werken en met relatief hoge privileges binnen het cluster draaien. Het laat zich raden waarom ‘IngressNightmare’ zo heet; systeembeheerders die deze problemen niet oplossen, riskeren slapeloze nachten.
De onderzoekers ontdekten meerdere manieren om nieuwe directives te injecteren in de code die verantwoordelijk is voor het genereren van tijdelijke NGINX-configuratiebestanden. Door vervolgens gebruik te maken van de ssl_engine-directive, konden ze willekeurige gedeelde libraries laden tijdens de NGINX-configuratietestfase, met RCE tot gevolg.
Wiz publiceert vaker bevindingen via het eigen Research-team, maar het bedrijf zelf kwam prominent in het nieuws nu blijkt dat Google-moederbedrijf Alphabet 32 miljard dollar voor Wiz neertelt.
Luister hier naar de Techzine Talks-aflevering over de Wiz-overname door Alphabet: