Ad · Leaderboard 728×90

CVE-2026-113672

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-22

Impact

Authenticated attackers with read access to an Application can exfiltrate sensitive files readable by repo-server (like service account tokens and private keys) or crash repo-server via memory exhaustion. They achieve this by committing malicious Jsonnet files to an app repo or uploading them via the API manifest generation endpoint.

Root cause

The repo-server Jsonnet importer fails to restrict file import paths to the repository root, allowing arbitrary path traversal and symlink dereferencing.

Affected systems

Argo CD 0.9.0 up to (but not including) 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 version 3.3.15, 3.4.10, 3.5.4, 3.6.0-rc2, or later. If patching immediately is not possible, disable built-in Jsonnet support in the repo-server configuration.

shell
$ kubectl -n argocd set image deployment/argocd-repo-server argocd-repo-server=quay.io/argoproj/argocd:v3.5.4

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 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.

References

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

Ad · Sticky 320×50 / 728×90