Podatność w Argo CD umożliwia posiadaczom tokenów API z uprawnieniami poziomu projektu odczytanie wrażliwych poświadczeń repozytoriów (nazw użytkowników i haseł) za pośrednictwem endpointu szczegółów projektu. Zagrożenie jest krytyczne, ponieważ nie wymaga żadnych specjalnych uprawnień do sekretów — wystarczą standardowe uprawnienia zarządzania aplikacjami.
▸ Pokaż oryginał (EN)
Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. In versions 2.13.0 through 2.13.8, 2.14.0 through 2.14.15, 3.0.0 through 3.0.12 and 3.1.0-rc1 through 3.1.1, API tokens with project-level permissions are able to retrieve sensitive repository credentials (usernames, passwords) through the project details API endpoint, even when the token only has standard application management permissions and no explicit access to secrets. This vulnerability does not only affect project-level permissions. Any token with project get permissions is also vulnerable, including global permissions such as: `p, role/user, projects, get, *, allow`. This issue is fixed in versions 2.13.9, 2.14.16, 3.0.14 and 3.1.2.
Endpoint API zwracający szczegóły projektu nie filtruje prawidłowo wrażliwych danych poświadczeń repozytoriów przed zwróceniem odpowiedzi. Token API posiadający uprawnienie `projects, get` — zarówno na poziomie projektu, jak i globalne (np. `p, role/user, projects, get, *, allow`) — może pobrać pełne poświadczenia repozytoriów powiązanych z projektem, mimo braku jawnie nadanego dostępu do sekretów. Błąd klasyfikowany jest jako CWE-200 (ujawnienie wrażliwych informacji nieuprawnionym podmiotom).
Atakujący posiadający dowolny token API z uprawnieniem odczytu projektu może uzyskać nazwy użytkowników i hasła do repozytoriów kodu źródłowego, co może prowadzić do przejęcia repozytoriów, kradzieży kodu lub lateral movement w infrastrukturze CI/CD.
Należy zaktualizować Argo CD do wersji 2.13.9, 2.14.16, 3.0.14 lub 3.1.2, w których podatność została naprawiona. Do czasu aktualizacji zaleca się audyt przyznanych tokenów API i ograniczenie uprawnień `projects, get` wyłącznie do zaufanych podmiotów.
Argo CD w wersjach 2.13.0–2.13.8, 2.14.0–2.14.15, 3.0.0–3.0.12 oraz 3.1.0-rc1–3.1.1
Podatność dotyczy również uprawnień globalnych, nie tylko projektowych — każdy token z uprawnieniem `projects, get` (w tym role globalne takie jak `p, role/user, projects, get, *, allow`) jest podatny. Szczegóły poprawki dostępne w commicie e8f86101 oraz w repozytorium GitHub Security Advisories (GHSA-786q-9hcg-v9ff).
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:HArgoproj Argo Cd
APPArgoproj2.2.0 – 2.13.9 (bez)2.14.0 – 2.14.16 (bez)3.0.0 – 3.0.14 (bez)3.1.0 – 3.1.2 (bez)
Powiązane podatności
Argo CD: ujawnienie danych Secret Kubernetes przez endpoint ServerSideDiff
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
Argo CD: XSS w adnotacjach linków umożliwia przejęcie uprawnień