CVE-2026-113708 in Argo CDinfo

Summary

by MITRE • 10/20/2026

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.

Be aware that VulDB is the high quality source for vulnerability data.

Analysis

by VulDB Data Team • 10/20/2026

Argo CD serves as a declarative continuous delivery tool for Kubernetes that relies on GitOps principles to manage application deployments. A critical security vulnerability exists within the integration of Kustomize versions used in Argo CD releases from 2.7.0 through specific patched versions including 3.3.15, 3.4.10, 3.5.4, and 3.6.0-rc2. The core technical flaw stems from how the underlying Kustomize library handles query parameters in remote resource URLs during git fetch operations. Specifically, when processing ref or version queries derived from base or component URLs that utilize local transport protocols such as file://, the system fails to append an end-of-options separator before passing these values to the git command line interface. This omission allows a leading-hyphen value within the query string to be misinterpreted by Git as a command-line flag rather than a data parameter. In this specific context, the malformed input is parsed as the --upload-pack option, which triggers arbitrary command execution inside the argocd-repo-server pod.

The operational impact of this vulnerability is severe because it enables remote code execution within the Argo CD environment without requiring high-level privileges or direct repository write access. An attacker can exploit this flaw by committing a malicious Kustomization file to a Git repository that an existing Application monitors, thereby triggering the vulnerable git fetch operation during manifest generation. Alternatively, exploitation can occur through the POST /api/v1/applications/manifestsWithFiles endpoint, which is also accessible via the argocd app diff --local --server-side-generate command interface. Crucially, this upload path only requires an attacker to have Application get permissions on a pre-existing Application resource. This means that even users with minimal read-only access can trigger arbitrary code execution without needing Application update or sync permissions, nor do they need write access to the Git repository itself. The vulnerability is particularly dangerous because it bypasses standard network-based defenses; since the local file:// transport does not leave the pod, blocking egress traffic from the repo-server cannot prevent the exploitation of this flaw.

The command executed via this vector runs with the privileges of the argocd-repo-server user account. This grants the attacker significant capabilities to read sensitive repository credentials and other process-accessible data stored within the container environment. Furthermore, the results of the arbitrary command execution can be exfiltrated back to the attacker through manifest-generation errors returned by Argo CD, providing a reliable out-of-band channel for data theft or further reconnaissance. It is important to note that while Kustomize version 5.0.0 introduced acceptance of file:// URLs and earlier versions like 4.5.7 rejected them, simply upgrading the underlying Kustomize library does not resolve this issue if the Argo CD application itself remains on a vulnerable release. The root cause lies in the argument parsing logic within Argo CD's integration layer rather than solely in Kustomize’s URL handling capabilities.

To mitigate this vulnerability, organizations must upgrade their Argo CD instances to one of the fixed versions: 3.3.15, 3.4.10, 3.5.4, or 3.6.0-rc2 and later. This patch ensures that query values are correctly separated from command options before being passed to git fetch, preventing the misinterpretation of hyphenated strings as executable flags. In addition to upgrading, administrators should enforce strict least-privilege access controls within Argo CD, ensuring that users with Application get permissions do not have unnecessary exposure to manifest generation endpoints unless absolutely required for their role. Monitoring logs for unusual patterns in git fetch operations or unexpected error messages related to manifest generation can also aid in detecting potential exploitation attempts. This vulnerability is categorized under CWE-78 Improper Neutralization of Special Elements used in an OS Command, commonly known as OS Command Injection, and aligns with ATT&CK techniques involving command execution within containerized environments for lateral movement and credential access.

Responsible

GitHub M

Reservation

10/20/2026

Disclosure

10/20/2026

Moderation

accepted

EPSS

0.00000

KEV

no

Activities

low

Sources

Do you need the next level of professionalism?

Upgrade your account now!