Skip to main content

Argo CD EUVDEUVD-2026-105227

| CVE-2026-113672 CRITICAL
Path Traversal (CWE-22)
2026-10-20 GitHub_M
9.9
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate with Application get RBAC
  2. Delivery
    Upload crafted .jsonnet via manifestsWithFiles API
  3. Exploit
    Importer traverses to service-account token or private key
  4. Execution
    Imported contents returned inside ConfigMap manifest
  5. Impact
    Exfiltrate credentials and pivot within cluster

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK

2 techniques across 2 tactics: Discovery, Collection

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires an authenticated Argo CD account holding at least Application 'get' permission on an existing directory-type Application - notably NOT Application update, sync, or repository write access - because the POST /api/v1/applications/manifestsWithFiles upload path (also reachable via argocd app diff --local --server-side-generate) accepts attacker-supplied .jsonnet. Argo CD's default role:catch-all policy grants get to every authenticated user, lowering the bar substantially on multi-tenant installs. Alternatively, an attacker with write access to a Git repository backing an Application can commit the malicious .jsonnet, since directory Applications evaluate every .jsonnet file in the directory. The flaw only applies where .jsonnet rendering is reachable and is limited to Argo CD versions 0.9.0 through those preceding 3.3.15/3.4.10/3.5.4/3.6.0-rc2; secrets written to generated Kubernetes Secrets are redacted, so the attacker must route stolen data through a non-Secret resource such as a ConfigMap to read it back.

Impact

This is a genuine high-priority issue, not a CVSS-inflated one. The provided CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H, 9.9) aligns with the description: a network-reachable repo-server endpoint reachable by any authenticated Argo CD user with only Application 'get' permission (PR:L), requiring no user interaction and no special timing (AC:L). The scope change (S:C) is well justified because arbitrary file read lets the attacker steal projected service-account tokens, mounted private keys and repository credentials - secrets belonging to other security authorities that enable lateral movement across the Kubernetes cluster. The confidentiality and availability impacts are strongly supported (file disclosure plus /dev/zero memory-exhaustion DoS); the integrity (I:H) claim is weaker since the primitive is read/disclosure rather than modification. No EPSS score, KEV listing, or POC indicator is present in the input, so there is no signal of active exploitation or widespread automated attacks - this is a vendor-reported (GitHub Security Advisory) flaw. The low barrier to entry (default role:catch-all grants get, and the upload path needs neither update, sync, nor repo write access) makes exploitation realistic for any tenant on a shared Argo CD instance, which is the primary driver of urgency rather than any observed in-the-wild activity.

Exploit ScenarioDerived

A tenant with only read (get) access to an existing directory-type Application on a multi-tenant Argo CD instance crafts a .jsonnet file that uses importstr on an absolute path such as /var/run/secrets/kubernetes.io/serviceaccount/token or a mounted repository credential, and places the imported content inside a ConfigMap. They submit it via POST /api/v1/applications/manifestsWithFiles (or argocd app diff --local --server-side-generate); the repo-server evaluates the file and returns the harvested secret in the rendered manifest. No public exploit identified at time of analysis, though the technique is fully described in the vendor advisory.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.8% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 20, 2026

Argo CD's repo-server evaluates .jsonnet files with an importer that is not confined to the repository root, allowing authenticated users who hold only Application 'get' permission to read any file the repo-server can access and to exhaust its memory. Affected deployments are Argo CD 0.9.0 through the releases preceding 3.3.15, 3.4.10, 3.5.4, and 3.6.0-rc2, where absolute paths, parent-directory traversal, and repository symlinks can reach files such as /proc/self/environ, projected service-account tokens, mounted private keys, and repository credentials; stolen data must be routed through a non-Secret resource like a ConfigMap because generated Secrets are redacted, and importstr on a non-terminating device like /dev/zero can cause a denial of service. No public exploit code was identified at time of analysis, but Argo CD's default role:catch-all policy grants Application get to every authenticated user, so the upload path through POST /api/v1/applications/manifestsWithFiles lowers the bar substantially on multi-tenant installations.

RemediationAI

Upgrade to Argo CD 3.3.15, 3.4.10, 3.5.4, or 3.6.0-rc2 (or later) as the primary fix, using the release notes linked above. If immediate upgrade is not possible, disable Argo CD's built-in jsonnet tool detection as described at https://argo-cd.readthedocs.io/en/stable/user-guide/tool_detection/#disable-built-in-tools; this removes the attack surface but will break Applications that rely on jsonnet rendering until the tool is re-enabled, so inventory jsonnet usage first. Restrict who can write .jsonnet files to Git repositories consumed by Applications and audit use of POST /api/v1/applications/manifestsWithFiles and argocd app diff --local --server-side-generate, since the upload path requires only Application get permission on a directory Application; on multi-tenant installs, consider separate Argo CD instances or scoped RBAC for untrusted users, accepting the added operational overhead. Monitor repo-server file access and memory for reads of absolute paths, /proc/self/environ, service-account token paths, or /dev/zero, and treat any observed access as compromise of mounted repository credentials and cluster secrets.

Affected VersionsENISA

argo-cd 3.6.0-rc1, < 3.6.0-rc2
argo-cd 3.4.0-rc1, < 3.4.10
argo-cd 3.5.0-rc1, < 3.5.4
argo-cd 0.9.0, < 3.3.1

Affected Packages

euvd argo_cd fix: 3.3.1, 3.4.10, 3.5.4, 3.6.0-rc2

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The flaw is a path-traversal weakness (CWE-22) in Argo CD's repo-server jsonnet rendering path. When Argo CD generates manifests for directory-type Applications, it evaluates every .jsonnet file using go-jsonnet's FileImporter configured with JPaths set to the application directory; JPaths only defines search roots for relative imports and does not prevent absolute paths, '../' traversal, or symlink resolution outside the repository, so the jsonnet import, importstr, and importbin functions can open arbitrary files readable by the repo-server process. Because the repo-server runs with a service account and often mounts repository credentials, TLS keys, and projected tokens, the reachable file set includes /proc/self/environ, service-account tokens, private keys, and Git credentials. Argo CD redacts generated Kubernetes Secret values in its API responses, so an attacker must place the imported content into a non-Secret object such as a ConfigMap and read it back through normal resource retrieval. importstr and importbin additionally allow reading non-terminating character devices, and /dev/zero causes unbounded memory consumption in the repo-server. The trigger surface is broad: an attacker who can commit a .jsonnet file to a Git repository backing an Application can exploit it directly, and the same evaluation runs on attacker-supplied files submitted to POST /api/v1/applications/manifestsWithFiles, which is also reachable through argocd app diff --local --server-side-generate. That API path requires only Application get permission on an existing directory Application, not Application update, sync, or repository write access.

Know when Argo Cd gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 9.9 CRITICAL
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
vuln.today AI 9.6 CRITICAL

Network API reachable by any low-privilege authenticated user (PR:L, AC:L); scope change from stolen service-account tokens/credentials; high confidentiality and DoS impact but no direct integrity modification, so I:N.

3.1 AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:H/SC:H/SI:N/SA:N
Red Hat 8.1 HIGH

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Oct 20, 2026 - 19:03 EUVD
CVE Published
Oct 20, 2026 - 18:00 cve.org
CRITICAL 9.9

DescriptionCVE.org

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.

Technical POC Analysis

The bug is CWE-22: Improper Limitation of a Pathname to a Restricted Directory (Path Traversal).

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Argo CD deployments in the affected 0.9.0 through releases preceding 3.3.15, 3.4.10, 3.5.4, and 3.6.0-rc2 ranges expose sensitive credentials and enable service disruption through uncontrolled jsonnet file imports. Because the default role:catch-all policy grants Application 'get' broadly, a low-privileged user can reach service-account tokens, private keys, and repository credentials, making this a supply-chain and secrets-exposure risk that affects CI/CD integrity across teams. No public exploit identified at time of analysis and no vendor-released patch identified at time of analysis, so leadership should prioritize containment and upgrade planning.

Business Impact: Severe
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: remove or tightly scope Application 'get' from the default role:catch-all and grant it only to trusted users; disable jsonnet rendering where not needed; block POST /api/v1/applications/manifestsWithFiles at ingress/WAF; run repo-server with a read-only root filesystem, minimal service account, no long-lived secrets mounted, and memory limits; use short-lived projected service-account tokens with audience restriction; monitor for anomalous jsonnet imports, ConfigMap writes, and repo-server memory spikes; rotate repository credentials and private keys if exposure is suspected; apply vendor patch when available.

Threat Intelligence Overview

EPSS Score
0.8%
Top 43% exploitable
Prevalence
High
widely deployed enterprise GitOps CD tool for Kubernetes
Social Media
1
Sightings
Data Quality
7 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.8%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
Very High

Priority Score

51
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +50
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

CVE-2025-55190 CRITICAL POC
9.9 Sep 04

Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. Rated critical severity (CVSS 9.9), this vulne

CVE-2023-40029 CRITICAL POC
9.6 Sep 07

Argo CD is a declarative continuous deployment for Kubernetes. Rated critical severity (CVSS 9.6), this vulnerability is

CVE-2024-21662 CRITICAL POC
9.1 Mar 18

Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. Rated critical severity (CVSS 9.1), this vulne

CVE-2024-31989 CRITICAL POC
9.0 May 21

Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. Rated critical severity (CVSS 9.0), this vulne

CVE-2022-1025 HIGH POC
8.8 Jul 12

All unpatched versions of Argo CD starting with v1.0.0 are vulnerable to an improper access control bug, allowing a mali

CVE-2020-8828 HIGH POC
8.8 Apr 08

As of v1.5.0, the default admin password is set to the argocd-server pod name. Rated high severity (CVSS 8.8), this vuln

CVE-2024-22424 HIGH POC
8.3 Jan 19

Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. Rated high severity (CVSS 8.3), this vulnerabi

CVE-2025-59531 HIGH POC
7.5 Oct 01

Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. Versions 1.2.0 through 1.8.7, 2.0.0-rc1 throug

CVE-2025-59537 HIGH POC
7.5 Oct 01

Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. Versions 1.2.0 through 1.8.7, 2.0.0-rc1 throug

CVE-2025-59538 HIGH POC
7.5 Oct 01

Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. For versions 2.9.0-rc1 through 2.14.19, 3.0.0-

CVE-2024-40634 HIGH POC
7.5 Jul 22

Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. Rated high severity (CVSS 7.5), this vulnerabi

CVE-2024-37152 HIGH POC
7.5 Jun 06

Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. Rated high severity (CVSS 7.5), this vulnerabi

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy