Drei hochkritische Sicherheitslücken im NGINX Ingress Controller für Kubernetes wurden aufgedeckt, die von Cyberkriminellen ausgenutzt werden könnten, um geheime Anmeldedaten aus dem Cluster zu stehlen.

Die Sicherheitslücken im Einzelnen:

  • CVE-2022-4886 (CVSS-Wert: 8,8) ermöglicht es, die Pfadsanierung des Ingress-nginx zu umgehen und die Anmeldedaten des Ingress-nginx Controllers zu erlangen.
  • CVE-2023-5043 (CVSS-Wert: 7,6) führt durch eine Injektion in Ingress-nginx Annotation zur Ausführung willkürlicher Befehle.
  • CVE-2023-5044 (CVSS-Wert: 7,6) ermöglicht eine Code-Injektion über die nginx.ingress.kubernetes.io/permanent-redirect Annotation.

Laut Ben Hirschberg, CTO und Mitgründer der Kubernetes-Sicherheitsplattform ARMO, ermöglichen diese Schwachstellen einem Angreifer, der die Konfiguration des Ingress-Objekts kontrolliert, das Stehlen geheimer Anmeldedaten aus dem Cluster.

Ein erfolgreicher Angriff könnte es einem Cyberkriminellen erlauben, willkürlichen Code in den Ingress-Controller-Prozess zu injizieren und unbefugten Zugriff auf sensible Daten zu erhalten.

Besonders CVE-2022-4886, der aufgrund einer fehlenden Validierung im „spec.rules[].http.paths[].path“ Feld entsteht, erlaubt es einem Angreifer mit Zugriff auf das Ingress-Objekt, Kubernetes-API-Anmeldedaten vom Ingress-Controller zu extrahieren.

In Ermangelung von Patches haben die Software-Verantwortlichen Abhilfemaßnahmen veröffentlicht, darunter das Aktivieren der Option „strict-validate-path-type“ und das Setzen des Flags „–enable-annotation-validation“, um die Erstellung von Ingress-Objekten mit ungültigen Zeichen zu verhindern und zusätzliche Einschränkungen durchzusetzen.

ARMO empfiehlt, NGINX auf Version 1.19 zu aktualisieren und die Konfiguration „–enable-annotation-validation“ hinzuzufügen, um die Schwachstellen CVE-2023-5043 und CVE-2023-5044 zu beheben.

Hirschberg wies darauf hin, dass diese Lücken letztlich auf dasselbe Grundproblem hinweisen: „Ingress-Controller haben von Design her Zugriff auf TLS-Geheimnisse und die Kubernetes-API, was sie zu Arbeitslasten mit hohem Privileg macht. Da sie oft öffentlich zugänglich sind, sind sie besonders anfällig für externen Datenverkehr, der durch sie in den Cluster gelangt.“