Im sich entwickelnden Projekt Kubernetes ingress-controller ingress-nginx wurden drei Sicherheitsanfälligkeiten entdeckt, die es ermöglichen, im Standardkonfigurationsmodus auf die Einstellungen des Ingress-Objekts zuzugreifen, in denen unter anderem die Anmeldeinformationen für den Zugriff auf die Kubernetes-Server gespeichert sind, was privilegierten Zugriff auf das Cluster ermöglicht. Die Probleme treten ausschließlich im ingress-controller ingress-nginx des Kubernetes-Projekts auf und betreffen nicht den kubernetes-ingress-Controller, der von den Entwicklern von NGINX gepflegt wird.
Der Ingress-Controller fungiert als Gateway und wird in Kubernetes verwendet, um den Zugriff aus dem externen Netzwerk auf die Dienste innerhalb des Clusters zu organisieren. Der ingress-nginx-Controller ist der beliebteste und setzt der Server NGINX zur Weiterleitung von Anfragen an das Cluster, zur Routing externer Anfragen und zur Lastverteilung ein. Das Kubernetes-Projekt stellt grundlegende ingress-Controller für AWS, GCE und nginx zur Verfügung, wobei letzterer nicht mit dem kubernetes-ingress-Controller verbunden ist, dessen Pflege das Unternehmen F5/NGINX übernimmt.

Die Sicherheitsanfälligkeiten CVE-2023-5043 und CVE-2023-5044 ermöglichen die Ausführung eigenen Codes auf Server mit Rechten des Ingress-Controllers, wobei die Parameter „nginx.ingress.kubernetes.io/configuration-snippet“ und „nginx.ingress.kubernetes.io/permanent-redirect“ verwendet werden. Unter anderem ermöglichen die erhaltenen Zugriffsrechte das Extrahieren des Tokens, das für die Authentifizierung auf Clusterverwaltungsebene verwendet wird. Die Sicherheitsanfälligkeit CVE-2022-4886 erlaubt das Umgehen der Prüfung von Dateipfaden durch die Verwendung der Direktive log_format.
Die ersten beiden Sicherheitsanfälligkeiten treten nur in ingress-nginx-Versionen vor 1.9.0 auf, während die letzte bis zur Version 1.8.0 besteht. Um einen Angriff durchzuführen, muss der Angreifer Zugriff auf die Konfiguration des Ingress-Objekts haben, beispielsweise in Mehrbenutzer-Kubernetes-Clustern, in denen Benutzern die Erstellung von Objekten in ihrem Namespace erlaubt ist.
Quelle: opennet.ru
