Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain Application get permission on existing app
-
DeliveryUpload crafted Kustomization and Helm plugin via manifestsWithFiles
-
ExploithelmGlobals.configHome redirects Helm to repo-controlled dir
-
ExecutionHelm auto-loads and executes downloader plugin in repo-server
-
ImpactRead 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
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.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.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.
Articles & Coverage 1
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
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.
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
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. Rated critical severity (CVSS 9.9), this vulne
Argo CD is a declarative continuous deployment for Kubernetes. Rated critical severity (CVSS 9.6), this vulnerability is
Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. Rated critical severity (CVSS 9.1), this vulne
Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. Rated critical severity (CVSS 9.0), this vulne
All unpatched versions of Argo CD starting with v1.0.0 are vulnerable to an improper access control bug, allowing a mali
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
Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. Rated high severity (CVSS 8.3), this vulnerabi
Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. Versions 1.2.0 through 1.8.7, 2.0.0-rc1 throug
Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. Versions 1.2.0 through 1.8.7, 2.0.0-rc1 throug
Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. For versions 2.9.0-rc1 through 2.14.19, 3.0.0-
Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. Rated high severity (CVSS 7.5), this vulnerabi
Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. Rated high severity (CVSS 7.5), this vulnerabi
EUVD-2026-105250
NVD
CVE.org
EPSS
GitHub
Exploit-DB