Nieuwe beveiligingsfouten ontdekt in NGINX Ingress Controller voor Kubernetes

Er zijn drie ongepatchte, zeer ernstige beveiligingsfouten onthuld in de NGINX Ingress-controller voor Kubernetes die door een bedreigingsacteur kunnen worden bewapend om geheime inloggegevens van het cluster te stelen.

De kwetsbaarheden zijn als volgt:

  • CVE-2022-4886 (CVSS-score: 8,8) – Ingress-nginx-padopschoning kan worden omzeild om de inloggegevens van de ingress-nginx-controller te verkrijgen
  • CVE-2023-5043 (CVSS-score: 7,6) – Ingress-nginx-annotatie-injectie veroorzaakt willekeurige uitvoering van opdrachten
  • CVE-2023-5044 (CVSS-score: 7,6) – Code-injectie via nginx.ingress.kubernetes.io/permanent-redirect annotatie

“Deze kwetsbaarheden stellen een aanvaller die de configuratie van het Ingress-object kan controleren in staat om geheime inloggegevens van het cluster te stelen”, zegt Ben Hirschberg, CTO en mede-oprichter van Kubernetes-beveiligingsplatform ARMO, over CVE-2023-5043 en CVE-2023- 5044.

Succesvol misbruik van de fouten zou een tegenstander in staat kunnen stellen willekeurige code in het proces van de ingangscontroller te injecteren en ongeautoriseerde toegang te krijgen tot gevoelige gegevens.

CVE-2022-4886, een resultaat van een gebrek aan validatie in de “spec.rules[].http.paden[].path” geeft een aanvaller met toegang tot het Ingress-object de mogelijkheid om Kubernetes API-referenties over te hevelen van de ingangscontroller.

“In het Ingress-object kan de operator definiĆ«ren welk binnenkomend HTTP-pad naar welk binnenpad wordt gerouteerd”, aldus Hirschberg. “De kwetsbare applicatie controleert de geldigheid van het binnenste pad niet goed en kan verwijzen naar het interne bestand dat het serviceaccounttoken bevat dat de clientreferentie is voor authenticatie tegen de API-server.”

Bij gebrek aan oplossingen hebben de ontwikkelaars van de software oplossingen uitgebracht die het inschakelen van de optie “strict-validate-path-type” en het instellen van de vlag –enable-annotation-validation inhouden om de creatie van Ingress-objecten met ongeldige tekens te voorkomen en aanvullende beperkingen afdwingen.

ARMO zei dat het updaten van NGINX naar versie 1.19, naast het toevoegen van de opdrachtregelconfiguratie “–enable-annotation-validation”, CVE-2023-5043 en CVE-2023-5044 oplost.

“Hoewel ze in verschillende richtingen wijzen, wijzen al deze kwetsbaarheden op hetzelfde onderliggende probleem”, aldus Hirschberg.

“Het feit dat ingangscontrollers door hun ontwerp toegang hebben tot TLS-geheimen en Kubernetes API, maakt ze tot workloads met een hoog privilegebereik. Bovendien zijn ze, omdat het vaak openbare internetgerichte componenten zijn, zeer kwetsbaar voor extern verkeer dat via hen het cluster binnenkomt.”

Thijs Van der Does