Skip to main content

Argo CD CVE-2026-113709

| EUVDEUVD-2026-105250 CRITICAL
Inclusion of Functionality from Untrusted Control Sphere (CWE-829)
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
    Obtain Application get permission on existing app
  2. Delivery
    Upload crafted Kustomization and Helm plugin via manifestsWithFiles
  3. Exploit
    helmGlobals.configHome redirects Helm to repo-controlled dir
  4. Execution
    Helm auto-loads and executes downloader plugin in repo-server
  5. Impact
    Read repository credentials and run commands as repo-server user

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V15 - Secure Coding and Architecture Trusted source inclusion only
Exploitation Conditions

Requires that the operator has enabled --enable-helm for kustomize build - the single hard gate; without it the deployment is not affected. Argo CD must use a Kustomize version that forwards helmGlobals.configHome to Helm (Kustomize 4.1.0+, bundled since Argo CD 2.1), the helmCharts repository URL must use the downloader plugin's protocol to trigger execution, and the attacker must supply both the Kustomization and the plugin. Delivery path A: commit the files to a Git repository an Application builds (needs repository write or control of a built repo). Delivery path B (lower bar): POST to /api/v1/applications/manifestsWithFiles (or argocd app diff --local --server-side-generate), which needs only Application 'get' permission on an existing Application and NOT Application update, sync, or repository write. Limiting factors: the non-default --enable-helm requirement, at least low-privilege authenticated access (PR:L), and the plugin-protocol/configHome setup needed to trigger Helm.

Impact

The input CVSS is 9.9 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H), reflecting network-reachable, low-complexity exploitation by a low-privileged authenticated user with a scope change (code runs in argocd-repo-server and exposes credentials for other repositories). No EPSS score, no CISA KEV listing, and no public POC were provided, so there is no evidence of active or at-scale exploitation at time of analysis - the raw 9.9 overstates immediate real-world urgency. The decisive mitigating signal is a precondition the CVSS base score does not capture: exploitation is ONLY possible when an operator has enabled --enable-helm for kustomize build; deployments without it are entirely unaffected, which sharply narrows the actually-exposed population. PR:L is justified because the manifestsWithFiles upload path needs only Application 'get' permission on an existing Application - not update, sync, or repository write - so a low-privilege tenant in a multi-tenant Argo CD instance is a realistic threat actor. Data conflicts to verify: the pasted 'Source code evidence' (GHSA-j6cw-g6p4-7hch) describes a SEPARATE vulnerability (SSH SOCKS5 proxy command injection) and its version ranges (>= 2.11.0), which contradict this CVE's description range (from 2.1.0, matching GHSA-fw5c-w8rc-j7fx); treat the affected-version range as not independently confirmed. Net: a genuine high priority for multi-tenant Argo CD installations that have turned on --enable-helm, but lower practical risk where that flag is off.

Exploit ScenarioDerived

A low-privileged tenant who holds only Application 'get' permission POSTs a crafted Kustomization plus a malicious Helm downloader plugin to /api/v1/applications/manifestsWithFiles (also reachable via argocd app diff --local --server-side-generate). When argocd-repo-server builds the manifests with --enable-helm, helmGlobals.configHome points Helm at the attacker-supplied directory, Helm auto-loads the downloader plugin and runs its program as the repo-server user, allowing it to read stored repository credentials and other process-accessible data. No public exploit was identified at time of analysis; the network vector and low complexity (AV:N/AC:L) make exploitation straightforward once --enable-helm is set.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.4% 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 deployments that run Kustomize with --enable-helm enabled can be tricked into executing attacker-supplied code inside argocd-repo-server, because helmGlobals.configHome lets a repository redirect Helm's config/data home to a repository-controlled path and Helm then auto-loads and runs a downloader plugin from <configHome>/.data/plugins without any plugin-install step. The barrier is low-privilege authenticated access (CVSS PR:L, scope-changed, 9.9): an attacker can either commit the Kustomization and plugin to a Git repository an Application already builds, or push the same files through POST /api/v1/applications/manifestsWithFiles (also reachable via argocd app diff --local --server-side-generate), which requires only Application get permission on an existing Application - no update, sync, or repository write rights. The payload runs as the repo-server user and can read repository credentials and other process-accessible data, so the blast radius extends beyond the Application itself; no public exploit code or confirmed active exploitation was identified at time of analysis, and the --enable-helm flag is a hard prerequisite - deployments that never enabled it are unaffected.

RemediationAI

Vendor-released patch: upgrade to Argo CD 3.3.15, 3.4.10, 3.5.4, or 3.6.0-rc2 per the advisories at https://github.com/argoproj/argo-cd/security/advisories/GHSA-fw5c-w8rc-j7fx (the fix is the referenced commit https://github.com/argoproj/argo-cd/commit/b6d5c23bce2f8a46c52975ba438a3b93d242d96c); the 2.x and 3.0-3.2 branches have no listed fix and should be moved onto a patched 3.3+ line. If an immediate upgrade is not possible, the highest-value control is to remove --enable-helm from the repo-server's kustomize build options, which completely closes both delivery paths at the cost of losing Kustomize helmCharts rendering (plain Helm Applications are unaffected); alternatively pin/keep the bundled Kustomize below 4.1.0, which stops configHome from being forwarded, accepting the loss of newer Kustomize features such as the v4 flag syntax (e.g. --load-restrictor LoadRestrictionsNone). Also tighten RBAC so untrusted users cannot hold Application get on Applications they do not own - that permission alone is enough to reach the manifestsWithFiles route - and remove repository create/update and repository-write rights from untrusted principals to close the Git-commit route; both are RBAC-only controls and will break legitimate developer self-service workflows. Restricting egress and monitoring repo-server child processes for unexpected Helm plugin executions can provide detection-only coverage with no preventive value.

Affected VersionsENISA

argo-cd 3.5.0-rc1, < 3.5.4
argo-cd 3.4.0-rc1, < 3.4.10
argo-cd 3.6.0-rc1, < 3.6.0-rc2
argo-cd 2.1.0, < 3.3.15

Affected Packages

euvd argo_cd fix: 3.3.15, 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 CWE-829 inclusion-of-functionality-from-untrusted-sphere problem in the Kustomize Helm chart inflation generator used by Argo CD's repo-server. Since Kustomize 4.1.0 (kubernetes-sigs/kustomize PR #3784, bundled into Argo CD with PR #6059), the HelmChartInflationGenerator plugin passes helmGlobals.configHome through to the Helm subprocess as HELM_CONFIG_HOME/HELM_DATA_HOME instead of forcing a private temporary directory. Helm treats <configHome>/.data/plugins as its plugin directory and loads downloader plugins found there without a separate 'helm plugin install' step; when a helmCharts entry uses a repository URL whose scheme matches a plugin's protocol, Helm executes that plugin's binary. Because configHome is taken from repository content, the plugin binary is effectively attacker-controlled. Execution occurs in argocd-repo-server, which holds Git, Helm, and OCI credentials for other repositories, so a successful attack crosses a trust boundary (CVSS scope change) and yields high confidentiality, integrity, and availability impact. Only the Kustomize build path with --enable-helm is exposed; plain Helm and non-Helm Kustomize rendering are not. Two delivery routes exist: a Git commit to a repository an Application builds, or the manifestsWithFiles API which renders local files server-side and lowers the permission bar to Application get only.

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

Reachable via the manifestsWithFiles API with only Application get permission (AV:N, PR:L); code executes in repo-server and exposes other repos' credentials (S:C) giving full C/I/A.

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

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 - 20:03 EUVD
CVE Published
Oct 20, 2026 - 18:08 cve.org
CRITICAL 9.9

DescriptionCVE.org

Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. From 2.1.0 until 3.3.15, 3.4.10, 3.5.4, and 3.6.0-rc2, when an operator has enabled --enable-helm for kustomize build, helmGlobals.configHome can point Helm's config and data directories at a repository-controlled location. Helm automatically loads a downloader plugin from <configHome>/.data/plugins without a separate plugin-install step and executes its program inside argocd-repo-server when a helmCharts repository URL uses the plugin's protocol. The command runs as the repo-server user and can read repository credentials and other process-accessible data. An attacker can commit the Kustomization and plugin to a Git repository that an Application builds or upload the 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. Both delivery paths require prior operator enablement of --enable-helm; deployments that do not enable it are not affected. Kustomize 4.1.0 first passed helmGlobals.configHome through to Helm. This issue is fixed in versions 3.3.15, 3.4.10, 3.5.4, and 3.6.0-rc2.

Technical POC Analysis

CWE-829: Inclusion of Functionality from Untrusted Control Sphere.

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 that run Kustomize with --enable-helm are exposed to a critical (CVSS 9.9) flaw that lets a low-privilege authenticated user execute attacker-controlled code inside argocd-repo-server, potentially exposing repository credentials and other process-accessible data beyond the targeted Application. No public exploit has been identified at time of analysis, but the low-privilege authenticated attack path and credential exposure make this a GitOps supply-chain and credential-compromise risk that platform and application teams should address urgently.

Business Impact: High
Compensating Controls

No vendor-released patch identified; interim mitigations include disabling --enable-helm where not required, restricting Application get permissions and the manifestsWithFiles/local-diff endpoints, enforcing policy to reject helmGlobals.configHome redirection and .data/plugins references, isolating and egress-restricting argocd-repo-server, and rotating credentials accessible to repo-server.

Threat Intelligence Overview

EPSS Score
0.4%
Top 64% exploitable
Prevalence
High
widely deployed GitOps CD tool across Kubernetes enterprise environments
Data Quality
5 sources
Confidence: Medium

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.4%
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
High

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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

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