Podatność w Argo CD powoduje ujawnienie pełnej zawartości sekretów klastra Kubernetes poprzez adnotację `kubectl.kubernetes.io/last-applied-configuration`. W przypadku konfiguracji opartej na tokenach uwierzytelniających (bearer-token auth) może to prowadzić do przejęcia dostępu do zarządzanych klastrów.
▸ Pokaż oryginał (EN)
Argo CD is a declarative continuous deployment for Kubernetes. Argo CD Cluster secrets might be managed declaratively using Argo CD / kubectl apply. As a result, the full secret body is stored in`kubectl.kubernetes.io/last-applied-configuration` annotation. pull request #7139 introduced the ability to manage cluster labels and annotations. Since clusters are stored as secrets it also exposes the `kubectl.kubernetes.io/last-applied-configuration` annotation which includes full secret body. In order to view the cluster annotations via the Argo CD API, the user must have `clusters, get` RBAC access. **Note:** In many cases, cluster secrets do not contain any actually-secret information. But sometimes, as in bearer-token auth, the contents might be very sensitive. The bug has been patched in versions 2.8.3, 2.7.14, and 2.6.15. Users are advised to upgrade. Users unable to upgrade should update/deploy cluster secret with `server-side-apply` flag which does not use or rely on `kubectl.kubernetes.io/last-applied-configuration` annotation. Note: annotation for existing secrets will require manual removal.
Gdy sekrety klastra Argo CD są zarządzane deklaratywnie przy użyciu `kubectl apply`, Kubernetes automatycznie zapisuje pełną treść zastosowanego obiektu w adnotacji `kubectl.kubernetes.io/last-applied-configuration`. Pull request #7139 dodał możliwość zarządzania etykietami i adnotacjami klastrów, co spowodowało, że wspomniana adnotacja — zawierająca pełną treść sekretu — stała się dostępna przez API Argo CD. Użytkownik posiadający uprawnienie RBAC `clusters, get` może odczytać tę adnotację i uzyskać dostęp do wrażliwych danych, takich jak tokeny uwierzytelniające.
Atakujący z uprawnieniem `clusters, get` w Argo CD może odczytać pełną zawartość sekretów klastra, w tym potencjalnie dane uwierzytelniające (np. bearer tokeny), co może umożliwić nieuprawniony dostęp do zarządzanych klastrów Kubernetes.
Należy zaktualizować Argo CD do wersji 2.8.3, 2.7.14 lub 2.6.15. Użytkownicy, którzy nie mogą wykonać aktualizacji, powinni wdrożyć lub zaktualizować sekrety klastra z flagą `--server-side-apply`, która nie korzysta z adnotacji `kubectl.kubernetes.io/last-applied-configuration`. Uwaga: istniejące adnotacje na już wdrożonych sekretach wymagają ręcznego usunięcia.
Argo CD w wersjach przed 2.6.15, przed 2.7.14 oraz przed 2.8.3
Podatność dotyczy tylko konfiguracji, w której sekrety klastra zarządzane są deklaratywnie przez `kubectl apply`. Sekrety niezawierające wrażliwych danych uwierzytelniających (np. bez bearer tokenów) są w mniejszym stopniu narażone na faktyczne ryzyko.
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:LArgoproj Argo Cd
APPArgoproj2.2.0 – 2.6.15 (bez)2.7.0 – 2.7.14 (bez)2.8.0 – 2.8.3 (bez)
Powiązane podatności
Argo CD: ujawnienie danych Secret Kubernetes przez endpoint ServerSideDiff
Argo CD: nieuprawniony dostęp do poświadczeń repozytoriów przez API token
XSS w Argo CD — wykonanie akcji w imieniu ofiary via API
Argo CD: nieautoryzowany dostęp do Redis umożliwia privilege escalation
Argo CD: Ominięcie ochrony przed brute force logowania