CVE-2025-62156
High · 8.1CVSS
8.1
EPSS
0.6%
Published
Oct 14, 2025
CISA due date
—
Cloudanix analysis
Workflow software used to run jobs on Kubernetes lets attackers sneak files into protected system areas inside containers, which could let them take over those containers.
- Exploitation
- Remote Authenticated
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Privilege Gain
- Component
- Application
- Class
- Path Traversal
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Path traversal during artifact extraction allows malicious archive entries to write files outside the intended /work/tmp directory into arbitrary container paths such as /etc after filepath.Join and Clean operations without boundary validation.
Why it matters to the business
Attackers could overwrite system files inside workflow containers to gain persistence or escalate privileges, risking disruption of Kubernetes-orchestrated jobs and compromise of dependent pipelines.
How an attack unfolds
An attacker supplies a crafted archive containing traversal or absolute paths as a workflow artifact; the executor extracts it without path validation, writing files into sensitive container locations such as /etc/passwd or /etc/crontab to achieve privilege escalation or persistence.
How to fix it
Upgrade argoproj/argo-workflows to version 3.6.12 or 3.7.3; the fix is present in commit 18ad5138b6bcb2aba04e00b4ec657bc6b8fad8df.
How to confirm the fix worked
Verify the installed Argo Workflows version is 3.6.12 or later, or confirm the executor.go source contains the corrected path validation logic from the referenced commit.
Typical attack path
- Craft a malicious tar or zip archive with path traversal entries targeting system directories
- Submit the archive as an input artifact to an Argo Workflow
- Trigger workflow execution so the executor performs extraction
- Overwrite or create files in sensitive container locations
- Leverage the modified files for persistence or privilege escalation within the container
How to detect it
Review workflow executor logs for extraction operations writing outside expected directories; inspect container file system changes in /etc or other system paths immediately after artifact handling.
What your security team should do
- Upgrade all Argo Workflows deployments to 3.6.12 or 3.7.3 without delay
- Audit workflows that accept untrusted artifacts and restrict artifact sources
- Implement container runtime policies that prevent writes to sensitive host paths
- Monitor for new EPSS increases or exploit publications given the stable but non-zero score
The record
Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. Versions prior to 3.6.12 and versions 3.7.0 through 3.7.2 contain a Zip Slip path traversal vulnerability in artifact extraction. During artifact extraction the unpack/untar logic (workflow/executor/executor.go) uses filepath.Join(dest, filepath.Clean(header.Name)) without validating that header.Name stays within the intended extraction directory. A malicious archive entry can supply a traversal or absolute path that, after cleaning, overrides the destination directory and causes files to be written outside the /work/tmp extraction path and into system directories such as /etc inside the container. The vulnerability enables arbitrary file creation or overwrite in system configuration locations (for example /etc/passwd, /etc/hosts, /etc/crontab), which can lead to privilege escalation or persistence within the affected container. Update to 3.6.12 or 3.7.3 to remediate the issue.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Go | github.com/argoproj/argo-workflows | 0 | No fix |
| Go | github.com/argoproj/argo-workflows/v2 | 0 | No fix |
| Go | github.com/argoproj/argo-workflows/v3 | 0 | 3.6.12 |
| Go | github.com/argoproj/argo-workflows/v3 | 3.7.0 | 3.7.3 |
| Bitnami | argo-workflows | 0 | 3.6.12 |
| Chainguard | argo-workflow-cli-3.6 | 0 | 3.6.12-r0 |
| Chainguard | argo-workflow-cli-3.7 | 0 | 3.7.3-r0 |
| Chainguard | argo-workflow-cli-fips-3.6 | 0 | 3.6.12-r0 |
| Chainguard | argo-workflow-controller-3.6 | 0 | 3.6.12-r0 |
| Chainguard | argo-workflow-controller-3.6-compat | 0 | 3.6.12-r0 |
| Chainguard | argo-workflow-controller-3.6-compat-fips | 0 | 3.6.12-r0 |
| Chainguard | argo-workflow-controller-3.7 | 0 | 3.7.3-r0 |
| Chainguard | argo-workflow-controller-3.7-compat | 0 | 3.7.3-r0 |
| Chainguard | argo-workflow-controller-4.0 | 0 | 4.0.2-r0 |
| Chainguard | argo-workflow-controller-fips-3.6 | 0 | 3.6.12-r0 |
| Chainguard | argo-workflow-controller-fips-4.0 | 0 | 4.0.2-r0 |
| Chainguard | argo-workflow-executor-3.6 | 0 | 3.6.12-r0 |
| Chainguard | argo-workflow-executor-3.6-compat | 0 | 3.6.12-r0 |
| Chainguard | argo-workflow-executor-3.6-compat-fips | 0 | 3.6.12-r0 |
| Chainguard | argo-workflow-executor-3.7 | 0 | 3.7.3-r0 |
| Chainguard | argo-workflow-executor-3.7-compat | 0 | 3.7.3-r0 |
| Chainguard | argo-workflow-executor-4.0 | 0 | 4.0.2-r0 |
| Chainguard | argo-workflow-executor-fips-3.6 | 0 | 3.6.12-r0 |
| Chainguard | argo-workflow-executor-fips-4.0 | 0 | 4.0.2-r0 |
| Chainguard | argo-workflows-3.6 | 0 | 3.6.12-r0 |
| Chainguard | argo-workflows-3.7 | 0 | 3.7.3-r0 |
| Chainguard | argo-workflows-4.0 | 0 | 4.0.2-r0 |
| Chainguard | argo-workflows-fips-3.6 | 0 | 3.6.12-r0 |
| Chainguard | argo-workflows-fips-4.0 | 0 | 4.0.2-r0 |
| Chainguard | argo-workflows-known-hosts-3.6 | 0 | 3.6.12-r0 |
| Chainguard | argo-workflows-known-hosts-3.7 | 0 | 3.7.3-r0 |
| Chainguard | argo-workflows-known-hosts-fips-3.6 | 0 | 3.6.12-r0 |
| Chainguard | argo-workflows-ui-3.6 | 0 | 3.6.12-r0 |
| Chainguard | argo-workflows-ui-3.7 | 0 | 3.7.3-r0 |
| Chainguard | kubeflow-pipelines | 0 | 2.14.3-r3 |
| Chainguard | kubeflow-pipelines-apiserver | 0 | 2.14.3-r3 |
| Chainguard | kubeflow-pipelines-cache-deployer | 0 | 2.14.3-r3 |
| Chainguard | kubeflow-pipelines-cache-deployer-compat | 0 | 2.14.3-r3 |
| Chainguard | kubeflow-pipelines-cache_server | 0 | 2.14.3-r3 |
| Chainguard | kubeflow-pipelines-frontend | 0 | 2.14.3-r3 |
| Chainguard | kubeflow-pipelines-metadata-envoy-config | 0 | 2.14.3-r3 |
| Chainguard | kubeflow-pipelines-metadata-writer | 0 | 2.14.3-r3 |
| Chainguard | kubeflow-pipelines-metadata-writer-compat | 0 | 2.14.3-r3 |
| Chainguard | kubeflow-pipelines-persistence_agent | 0 | 2.14.3-r3 |
| Chainguard | kubeflow-pipelines-scheduledworkflow | 0 | 2.14.3-r3 |
| Chainguard | kubeflow-pipelines-viewer-crd-controller | 0 | 2.14.3-r3 |
| Wolfi | argo-workflow-cli-3.7 | 0 | 3.7.3-r0 |
| Wolfi | argo-workflow-controller-3.7 | 0 | 3.7.3-r0 |
| Wolfi | argo-workflow-controller-3.7-compat | 0 | 3.7.3-r0 |
| Wolfi | argo-workflow-controller-4.0 | 0 | 4.0.2-r0 |
| Wolfi | argo-workflow-executor-3.7 | 0 | 3.7.3-r0 |
| Wolfi | argo-workflow-executor-3.7-compat | 0 | 3.7.3-r0 |
| Wolfi | argo-workflow-executor-4.0 | 0 | 4.0.2-r0 |
| Wolfi | argo-workflows-3.7 | 0 | 3.7.3-r0 |
| Wolfi | argo-workflows-4.0 | 0 | 4.0.2-r0 |
| Wolfi | argo-workflows-known-hosts-3.7 | 0 | 3.7.3-r0 |
| Wolfi | argo-workflows-ui-3.7 | 0 | 3.7.3-r0 |
| Wolfi | kubeflow-pipelines | 0 | 2.14.3-r3 |
| Wolfi | kubeflow-pipelines-apiserver | 0 | 2.14.3-r3 |
| Wolfi | kubeflow-pipelines-cache-deployer | 0 | 2.14.3-r3 |
| Wolfi | kubeflow-pipelines-cache-deployer-compat | 0 | 2.14.3-r3 |
| Wolfi | kubeflow-pipelines-cache_server | 0 | 2.14.3-r3 |
| Wolfi | kubeflow-pipelines-frontend | 0 | 2.14.3-r3 |
| Wolfi | kubeflow-pipelines-metadata-envoy-config | 0 | 2.14.3-r3 |
| Wolfi | kubeflow-pipelines-metadata-writer | 0 | 2.14.3-r3 |
| Wolfi | kubeflow-pipelines-metadata-writer-compat | 0 | 2.14.3-r3 |
| Wolfi | kubeflow-pipelines-persistence_agent | 0 | 2.14.3-r3 |
| Wolfi | kubeflow-pipelines-scheduledworkflow | 0 | 2.14.3-r3 |
| Wolfi | kubeflow-pipelines-viewer-crd-controller | 0 | 2.14.3-r3 |
| go | github.com/argoproj/argo-workflows/v3 | 3.7.0 | 3.7.3 |
| openSUSE:Tumbleweed | govulncheck-vulndb | 0 | 0.0.20251105T184115-1.1 |
Related vulnerabilities
- CVE-2026-23960 Argo Workflows is an open source container-native workflow engine for orchestrating… Also affects github.com/argoproj/argo-workflows
- CVE-2025-66626 argoproj/argo-workflows is vulnerable to RCE via ZipSlip and symbolic links Also affects github.com/argoproj/argo-workflows
- CVE-2025-62157 Argo Workflows is an open source container-native workflow engine for orchestrating… Also affects github.com/argoproj/argo-workflows
- GHSA-6rw7-vpxm-498p qs's arrayLimit bypass in its bracket notation allows DoS via memory exhaustion Also affects argo-workflow-cli-3.6
- CVE-2025-15284 Improper Input Validation vulnerability in qs (parse modules) allows HTTP DoS.This issue… Also affects argo-workflow-cli-3.6
- CVE-2025-68156 Expr is an expression language and expression evaluation for Go. Also affects argo-workflow-cli-3.6
- CVE-2024-51999 Express.js minimalist web framework for node. Also affects argo-workflow-cli-3.6
- GHSA-pj86-cfqh-vqx6 Withdrawn Advisory: express improperly controls modification of query properties Also affects argo-workflow-cli-3.6