Katalog CVE

CVE-2026-113672

KrytyczneCVSS 9.9
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Streszczenie

W Argo CD od wersji 0.9.0 do 3.3.15, 3.4.10, 3.5.4 i 3.6.0-rc2 repo-server przetwarza pliki .jsonnet za pomocą importera, który nie ogranicza import, importstr ani importbin do katalogu głównego repozytorium. Ścieżki bezwzględne, przechodzenie do katalogu nadrzędnego i dowiązania symboliczne w repozytorium mogą otworzyć dowolny plik czytelny dla repo-server, w tym /proc/self/environ, tokeny konta usługi, zamontowane klucze prywatne i poświadczenia repozytorium. Chociaż wygenerowane Secrets są redagowane, umieszczenie zaimportowanej zawartości w ConfigMap zwraca dane do wywołującego. Użycie importstr na urządzeniu, które nie kończy się, takim jak /dev/zero, może wyczerpać pamięć repo-server. Atakujący może zatwierdzić plik .jsonnet w repozytorium Git używanym przez Application lub przesłać plik przez POST /api/v1/applications/manifestsWithFiles, również udostępniane przez argocd app diff --local --server-side-generate. Aplikacje katalogowe oceniają każdy plik .jsonnet w katalogu aplikacji. Ścieżka przesyłania wymaga jedynie uprawnienia Application get na istniejącym Application katalogowym, bez uprawnień Application update lub sync ani dostępu do zapisu repozytorium. Problem naprawiono w wersjach 3.3.15, 3.4.10, 3.5.4 i 3.6.0-rc2.

Ocena ryzyka

Atakujący z minimalnymi uprawnieniami może odczytać dowolne pliki dostępne dla repo-server, w tym poświadczenia i tokeny, oraz wyczerpać jego pamięć. Może to prowadzić do naruszenia poufności całego środowiska GitOps i zakłócenia ciągłego dostarczania.

Rekomendacja

Zaktualizuj Argo CD do wersji 3.3.15, 3.4.10, 3.5.4 lub 3.6.0-rc2 (lub nowszej). Ogranicz uprawnienia repo-server i dostęp do aplikacji katalogowych do zaufanych użytkowników.

Inne podatności w Argo CD

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. From 0.9.0 until 3.3.15, 3.4.10, 3.5.4, and 3.6.0-rc2, the repo-server evaluates .jsonnet files with an importer that does not confine import, importstr, or importbin to the repository root. Absolute paths, parent-directory traversal, and repository symlinks can open any file readable by the repo-server, including /proc/self/environ, projected service-account tokens, mounted private keys, and repository credentials. Although generated Secrets are redacted, placing imported contents in a ConfigMap returns the data to the caller. Using importstr on a non-terminating device such as /dev/zero can exhaust repo-server memory. An attacker can commit a .jsonnet file to a Git repository used by an Application or upload the file through POST /api/v1/applications/manifestsWithFiles, also exposed by argocd app diff --local --server-side-generate. Directory applications evaluate every .jsonnet file in the application directory. The upload path requires only Application get permission on an existing directory Application, without Application update or sync permission or repository write access. This issue is fixed in versions 3.3.15, 3.4.10, 3.5.4, and 3.6.0-rc2.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS