Ad · Leaderboard 728×90

CVE-2026-113708

9.9Critical

Published 20 Oct 2026 · NVD status: Undergoing Analysis · AI triage by gemini-3.8-flash

9.9Critical
Attack vector
Network
Complexity
Low
Privileges needed
Low
User interaction
None
Impact
Full C/I/A compromise
Weakness
CWE-88

Impact

Attackers can execute arbitrary commands inside argocd-repo-server to steal repo credentials and sensitive process data. To exploit it, an attacker needs write access to an application repository or low-privilege read access (Application get permission) to post manifests directly to the API.

Root cause

Kustomize passes URL query values directly to git fetch without an end-of-options separator (--), allowing leading hyphens to inject flags like --upload-pack over file:// transports.

Affected systems

Argo CD 2.7.0 until 3.3.15, 3.4.10, 3.5.4, and 3.6.0-rc2

CVSS v3.1 · CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

Fix & remediation

Upgrade Argo CD to 3.3.15, 3.4.10, 3.5.4, or 3.6.0-rc2. The advisory lists no interim mitigation, as blocking repo-server network egress does not stop local file transport execution and updating Kustomize alone does not fix the missing separator.

shell
$ kubectl -n argocd get deployment argocd-repo-server -o jsonpath='{.spec.template.spec.containers[?(@.name=="argocd-repo-server")].image}'

AI-suggested. Run it in staging first and check it against the vendor advisory. Why?

Ad · In-content banner

NVD description

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.

References

Source: nvd.nist.gov/vuln/detail/CVE-2026-113708

Ad · Sticky 320×50 / 728×90