Argo CD: Command injection via Kustomize remote ref in repo-server
Summary
Argo CD passes ref or version values from remote Kustomize resource, base or component URLs to git fetch without an end-of-options separator. A value with a leading hyphen can be parsed as --upload-pack and run a command inside argocd-repo-server when the remote uses a local transport such as file://. An attacker who can get Application get permission or commit a Kustomization to a repository that an Application builds can run commands as the repo-server user, read repository credentials and return output through manifest-generation errors. The vendor rates the issue as critical (CVSS 3.1 9.9).
Affected
- Argo CD 2.7.0 up to 3.3.15 (excluding 3.3.15)
- Argo CD 3.4.0-rc1 up to 3.4.10 (excluding 3.4.10)
- Argo CD 3.5.0-rc1 up to 3.5.4 (excluding 3.5.4)
- Argo CD 3.6.0-rc1 up to 3.6.0-rc2 (excluding 3.6.0-rc2)
Fixed in
- 3.3.15
- 3.4.10
- 3.5.4
- 3.6.0-rc2 (the OSV entry lists 3.6.0; verify against the vendor release page)
Workaround
Unknown. Replacing Kustomize with a newer version alone does not fix the missing option separator.
Exploitation
- No known exploitation in the wild.
- CISA SSVC: exploitation none, automatable no, technical impact total.
- One aggregator reports no public exploit; not verified.
Our recommendation
- Upgrade Argo CD to a fixed version for your release branch, and check whether a newer patch release is available.
- Check which users hold Application get permission and who can commit to repositories that Argo CD builds, and limit both to the necessary accounts.
- Restrict access to the Argo CD API and UI to trusted networks.
- Monitor repo-server logs for unusual manifest-generation errors.
Public exploits
PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.
Research sources
- GitHub Security Advisory GHSA-9v9p-x54c-58gc github.com
- Argo CD release v3.3.15 github.com
- Argo CD release v3.4.10 github.com
- Argo CD release v3.5.4 github.com
- Argo CD release v3.6.0-rc2 github.com
- Argo CD fix commit 25badeb github.com
- Argo CD pull request 12299 github.com
- OSV entry BIT-argo-cd-2026-113708 osv.dev
Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 30 Oct 2026, 15:12.
Original description (NVD)
Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. From 2.7.0 until 3.3.15, 3.4.10, 3.5.4, and 3.6.0-rc2, Kustomize passes ref or version query values from remote resource, base, or component URLs to git fetch without an end-of-options separator. A leading-hyphen value can be parsed as --upload-pack and execute a command inside argocd-repo-server when the remote uses a local transport such as file://. Git does not run the supplied command for an https:// remote. The local transport does not leave the pod, so blocking repo-server egress does not prevent the execution. The command runs as the repo-server user, can read repository credentials and other process-accessible data, and can return output through manifest-generation errors. An attacker can commit a Kustomization to a Git repository that an Application builds or upload files through POST /api/v1/applications/manifestsWithFiles, also exposed by argocd app diff --local --server-side-generate. The upload path requires only Application get permission on an existing Application, without Application update or sync permission or repository write access. Kustomize 5.0.0 introduced acceptance of file://, whereas 4.5.7 rejects that transport; replacing the affected Kustomize with a newer version alone does not correct the missing option separator. This issue is fixed in versions 3.3.15, 3.4.10, 3.5.4, and 3.6.0-rc2.
NVD references (9)
- https://argo-cd.readthedocs.io/en/stable/user-guide/kustomize/#custom-kustomize-versions
- https://github.com/argoproj/argo-cd/commit/25badeb7a1e154805340bb7237e0ce671f3772dd
- https://github.com/argoproj/argo-cd/pull/12299
- https://github.com/argoproj/argo-cd/releases/tag/v3.3.15
- https://github.com/argoproj/argo-cd/releases/tag/v3.4.10
- https://github.com/argoproj/argo-cd/releases/tag/v3.5.4
- https://github.com/argoproj/argo-cd/releases/tag/v3.6.0-rc2
- https://github.com/argoproj/argo-cd/security/advisories/GHSA-9v9p-x54c-58gc
- https://github.com/argoproj/argo-cd/security/advisories/GHSA-j6cw-g6p4-7hch
Sources
The tracker combines official, freely usable data sources – updated continuously:
- NVD (NIST) – CVEs, rating (CVSS), affected products
- CISA KEV – vulnerabilities confirmed by CISA as actively exploited
- CISA Vulnrichment – CISA assessment (SSVC) in the official CVE record
- FIRST EPSS – probability of exploitation
- Microsoft MSRC – Patch Tuesday: vulnerabilities, severity, updates
- PoC-in-GitHub – public proof-of-concept repositories
- Metasploit (Rapid7) – modules of the Metasploit Framework
- Exploit-DB (OffSec) – archive of public exploits (links only)
- Patch days: official vendor pages (linked per vendor) (Vendor patch days)
This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.
Affected? We can help.
We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.
