Ungepatcht seit einem Jahr: Riskante Lücke in Argo CD
Ein einziges präpariertes Git-Repository genügt, um sich Zugang zu einem kompletten Kubernetes-Cluster zu verschaffen – zumindest, wenn Argo CD im Einsatz ist. Wie Sicherheitsforscher jetzt zeigen, reicht dafür nicht einmal ein gültiges Passwort.
Sicherheitsforscher des französischen Unternehmens Synacktiv haben eine gravierende Schwachstelle in Argo CD aufgedeckt, einem der meistgenutzten Werkzeuge für automatisierte Software-Deployments in Kubernetes-Umgebungen. Über die sogenannte Repo-Server-Komponente lässt sich ohne jede Authentifizierung Code auf dem Zielsystem ausführen.
Im schlimmsten Fall reicht das aus, um einen kompletten Kubernetes-Cluster zu übernehmen. Entdeckt wurde die Lücke von Hugo Vincent, der seine Ergebnisse Anfang Juli in einem ausführlichen Blogbeitrag veröffentlichte. Besonders brisant: Der Fehler ist trotz Meldung an die Argo-CD-Entwickler im Januar 2025 bis heute nicht behoben.
Weitreichende Rechte im Cluster
Argo CD gehört zu den Standardwerkzeugen im GitOps-Umfeld, einem Ansatz, bei dem Git-Repositories als zentrale Wahrheitsquelle für die Infrastruktur dienen. Änderungen an Konfigurationsdateien werden dabei automatisch in den Cluster übertragen. Laut einer Umfrage aus dem Jahr 2023 setzen 93 Prozent der Befragten das Tool produktiv ein. Weil Argo CD dafür weitreichende Rechte im Cluster sowie Zugriff auf private Git-Repositories benötigt, ist es ein besonders lohnendes Angriffsziel. Genau an diesem Punkt setzten die Forscher an.
Um die mehr als 238.000 Zeilen umfassende Codebasis systematisch zu durchleuchten, griff das Team auf CodeQL zurück, ein statisches Analysewerkzeug, das Datenflüsse im Quellcode nachverfolgen kann. Da die vorhandenen Standardregeln kaum neue Treffer lieferten, entwickelten die Forscher eigene Modelle, um zu erkennen, welche Funktionsparameter potenziell von außen manipulierbar sind.
Kustomize-Befehl startet beliebiges Skript
Auf diesem Weg stießen sie auf eine Schwachstelle in der Kustomize-Anbindung des Repo-Servers: Über das Feld BuildOptions lässt sich der "Kustomize"-Befehl so präparieren, dass er mit den Parametern "enable-helm" und "helm-command" ein beliebiges Skript startet. Da die zuständige gRPC-Schnittstelle des Repo-Servers keinerlei Authentifizierung verlangt, genügt ein einfacher Netzwerkzugriff auf Port 8081, um über eine präparierte Git-Adresse eigenen Code auszuführen.
Die Forscher gingen noch einen Schritt weiter und zeigten, wie sich der Angriff mit einer zweiten, bereits 2024 vom Unternehmen Cycode beschriebenen Schwäche kombinieren lässt: einer oft ungeschützten Redis-Datenbank, in der Argo CD zwischengespeicherte Kubernetes-Manifeste ablegt. Anders als im ursprünglichen Cycode-Bericht kam das Synacktiv-Team dabei ohne die spezielle SelfHeal-Funktion aus.
Stattdessen manipulierten sie gespeicherte Git-Commit-Referenzen so, dass Argo CD beim nächsten automatischen Abgleich ein bösartiges, zuvor in Redis platziertes Manifest für echt hielt und im Cluster ausrollte. In ihrem Testaufbau gelang es so, ein Deployment mit weitreichenden Rechten in den Cluster einzuschleusen und diesen vollständig zu kompromittieren.
Zugriff auf Repo-Server und Redis-DB einschränken
Als Schutzmaßnahme empfiehlt Synacktiv, den Zugriff auf Repo-Server und Redis-Datenbank strikt über Kubernetes-Netzwerkrichtlinien einzuschränken. Zwar liefert Argo CD entsprechende Vorlagen mit, bei einer Installation über den Paketmanager Helm sind diese jedoch standardmäßig deaktiviert.
Ein offizieller Patch der Argo-CD-Entwickler steht trotz mehrfacher Kontaktaufnahme seit über einem Jahr aus, weshalb sich Synacktiv nun zur Veröffentlichung entschlossen hat, um Administratoren zu warnen. Das selbst entwickelte Exploit-Werkzeug namens argo-cdown halten die Forscher vorerst zurück, damit Betreiber ausreichend Zeit haben, ihre Systeme abzusichern, bevor es öffentlich zugänglich gemacht wird.