Hackuritate

Erori critice în Ingress NGINX permit controlul unui cluster Kubernetes

Patru vulnerabilități critice, denumite IngressNightmare, afectează controllerul Ingress NGINX pentru Kubernetes, permițând execuția de cod fără autentificare și accesul neautorizat la secretele din namespace-uri.

Impactul asupra clusterelor Kubernetes este semnificativ, cel mai mare risc fiind accesul neautorizat la secretele din întregul namespace și execuția de cod arbitrar.

Conform experților de la Wiz, o companie de securitate în cloud în curs de achiziționare de Google, 43% din configurațiile cloud sunt vulnerabile.

Ei au descoperit că sunt peste 6.500 de clustere Kubernetes vulnerabile la IngressNightmare, inclusiv de la companii din topul Fortune 500, care au controllerul de intrare a traficului expus pe internetul public.

Ingress NGINX Controller este cel mai utilizat instrument pentru gestionarea traficului (intrare și ieșire) de date pentru aplicațiile Kubernetes folosind un controller de admisie ce acționează conform unor reguli definite.

Acesta acționează ca un reverse proxy NGINX și load balancer, îndeplinind cerințele de intrare a traficului (ingress) ale Kubernetes prin redirecționarea cererilor către serviciile corespunzătoare din cluster.

Funcționarea controllerului Ingress NGINX

Cele patru vulnerabilități critice au un scor de severitate de 9.8 pe o scară până la 10 și au primit numele colectiv IngressNightmare.

Sunt identificate ca CVE-2025-1097, CVE-2025-1098, CVE-2025-24514 și CVE-2025-1974 și au fost descoperite de experții de la Wiz Research.

La procesarea unui obiect de intrare, controlerul de admisie al Ingress-NGINX creează o configurație NGINX și apoi o validează folosind binarul NGINX.

În timpul fazei de validare configurația NGINX injectată determină validatorul NGINX să execute cod, permițând executarea codului de la distanță (RCE) pe podul controlerului NGINX Ingress.

Problemele IngressNightmare constau în posibilitatea injectării unei configurații NGINX arbitrare de la distanță prin trimiterea unui obiect de intrare malițios direct către controlerul de admisie prin rețea.

„Privilegiile ridicate ale controlorului de admisie și accesibilitatea nerestricționată la rețea creează o cale critică de escaladare” – Wiz Research

Un atacator care exploatează IngressNightmare nu are nevoie să se autentifice ca să obțină acces neautorizat la secretele din toate namespace-urile unui cluster Kubernetes.

IngressNightmare poate fi exploatat atât local cât și de la distanță

Conform experților, atacatorii pot utiliza injecții specifice precum auth-url, auth-tls-match-cn și mirror UID pentru a compromite configurațiile:

  • injecția auth-url: permite inserarea arbitrară de directive NGINX prin manipularea configurației de autentificare.
  • injecția auth-tls-match-cn: facilitează introducerea de configurări arbitrare în contextul certificatelor TLS.
  • injecția mirror UID: folosește câmpul ing.UID pentru a adăuga directive neautorizate în configurația NGINX.

Una din recomandările imediate pentru organizații este actualizarea la versiunile 1.12.1 sau 1.11.5 ale Ingress NGINX Controller.

Dacă actualizarea nu este posibilă momentan, administratorii ar trebui să restricționeze accesul  folosind controlere de admisie sau să utilizeze/implementeze soluții pentru monitorizarea activităților suspecte și detectarea din timp a atacurilor.