argo-cd: Argo CD: A Jsonnet import can read files from the repo-server
What fixes it
- 3.2.11github.com/argoproj/argo-cd/v3, GoOSV
go get github.com/argoproj/argo-cd/v3@v3.2.11 - 3.3.9github.com/argoproj/argo-cd/v3, GoOSV
go get github.com/argoproj/argo-cd/v3@v3.3.9
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
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.
Text from CVE List
Affected versions 6
- argo-cdaffected: >= 0.9.0, < 3.3.1CVE List
- argo-cdaffected: >= 3.4.0-rc1, < 3.4.10CVE List
- argo-cdaffected: >= 3.5.0-rc1, < 3.5.4CVE List
- argo-cdaffected: >= 3.6.0-rc1, < 3.6.0-rc2CVE List
- github.com/argoproj/argo-cd/v3, Gofrom 3.2.0, fixed in 3.2.11OSV
- github.com/argoproj/argo-cd/v3, Gofrom 3.3.0, fixed in 3.3.9OSV
References 10
- github.com/argoproj/argo-cd/commit/27471d524958878e7acc5131fb466b292079cd05Fixvia CVE List
- github.com/argoproj/argo-cd/releases/tag/v3.3.15Fixvia CVE List
- github.com/argoproj/argo-cd/releases/tag/v3.4.10Fixvia CVE List
- github.com/argoproj/argo-cd/releases/tag/v3.5.4Fixvia CVE List
- github.com/argoproj/argo-cd/releases/tag/v3.6.0-rc2Fixvia CVE List
- github.com/argoproj/argo-cd/security/advisories/GHSA-m3vr-7329-44wwAdvisoryvia CVE List
- github.com/argoproj/argo-cd/security/advisories/GHSA-3v3m-wc6v-x4x3Advisoryvia CVE List
- github.com/argoproj/argo-cd/security/advisories/GHSA-6gcg-hp2x-q54hAdvisoryvia CVE List
- github.com/argoproj/argo-cd/pull/561Referencevia CVE List
- argo-cd.readthedocs.io/en/stable/user-guide/tool_detection/#disable-built-in-toolsReferencevia CVE List