Schwachstellen in ingress-nginx, die eine Kompromittierung von Kubernetes-Clustern ermöglichen

Im vom Kubernetes-Projekt entwickelten Controller ingress-nginx wurden drei Schwachstellen identifiziert, die in der Standardkonfiguration den Zugriff auf die Einstellungen des Ingress-Objekts ermöglichen, das unter anderem Anmeldeinformationen für den Zugriff auf Kubernetes-Server speichert und so einen privilegierten Zugriff ermöglicht zum Cluster. Die Probleme treten nur im Ingress-Nginx-Controller aus dem Kubernetes-Projekt auf und betreffen nicht den von den NGINX-Entwicklern entwickelten Kubernetes-Ingress-Controller.

Der Ingress-Controller fungiert als Gateway und wird in Kubernetes verwendet, um den Zugriff vom externen Netzwerk auf Dienste innerhalb des Clusters zu organisieren. Der Ingress-Nginx-Controller ist der beliebteste und nutzt den NGINX-Server, um Anfragen an den Cluster weiterzuleiten, externe Anfragen weiterzuleiten und den Lastausgleich durchzuführen. Das Kubernetes-Projekt stellt zentrale Ingress-Controller für AWS, GCE und Nginx bereit, wobei letzterer in keiner Weise mit dem von F5/NGINX verwalteten Kubernetes-Ingress-Controller zusammenhängt.

Schwachstellen in ingress-nginx, die eine Kompromittierung von Kubernetes-Clustern ermöglichen

Die Schwachstellen CVE-2023-5043 und CVE-2023-5044 ermöglichen es Ihnen, Ihren Code auf dem Server mit den Rechten des Ingress-Controller-Prozesses auszuführen, indem Sie „nginx.ingress.kubernetes.io/configuration-snippet“ und „nginx.ingress.“ verwenden .kubernetes“-Parameter, um es durch .io/permanent-redirect zu ersetzen.“ Mit den erhaltenen Zugriffsrechten können Sie unter anderem einen Token abrufen, der zur Authentifizierung auf Cluster-Management-Ebene verwendet wird. Die Sicherheitslücke CVE-2022-4886 ermöglicht es Ihnen, die Überprüfung des Dateipfads mithilfe der log_format-Direktive zu umgehen.

Die ersten beiden Schwachstellen treten nur in ingress-nginx-Releases vor Version 1.9.0 auf, die letzte – vor Version 1.8.0. Um einen Angriff durchzuführen, muss ein Angreifer Zugriff auf die Konfiguration des Ingress-Objekts haben, beispielsweise in Multi-Tenant-Kubernetes-Clustern, in denen Benutzern die Möglichkeit gegeben wird, Objekte in ihrem Namensraum zu erstellen.

Source: opennet.ru

Kommentar hinzufügen