CVE-2025-62156
📋 TL;DR
Argo Workflows contains a Zip Slip path traversal vulnerability in artifact extraction that allows attackers to write arbitrary files outside the intended extraction directory. This can lead to system file overwrites in container environments, potentially enabling privilege escalation or persistence. Users running Argo Workflows versions prior to 3.6.12 or versions 3.7.0 through 3.7.2 are affected.
💻 Affected Systems
- Argo Workflows
📦 What is this software?
⚠️ Risk & Real-World Impact
Worst Case
Complete container compromise via overwriting critical system files like /etc/passwd or /etc/crontab, leading to privilege escalation, persistence mechanisms, or container escape.
Likely Case
Arbitrary file creation/overwrite in container filesystem, potentially enabling persistence, configuration manipulation, or lateral movement within Kubernetes clusters.
If Mitigated
Limited impact if containers run with minimal privileges, read-only root filesystems, and proper network segmentation.
🎯 Exploit Status
Exploitation requires ability to submit malicious archives to Argo Workflows. The vulnerability is straightforward to exploit once an attacker can trigger artifact extraction.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 3.6.12 or 3.7.3
Vendor Advisory: https://github.com/argoproj/argo-workflows/security/advisories/GHSA-p84v-gxvw-73pf
Restart Required: Yes
Instructions:
1. Update Argo Workflows to version 3.6.12 or 3.7.3. 2. Restart all Argo Workflows components. 3. Verify the update was successful.
🔧 Temporary Workarounds
Disable artifact extraction
allTemporarily disable artifact extraction functionality if not required
Run containers with read-only root filesystem
linuxConfigure containers to run with read-only root filesystem to prevent file writes
securityContext:
readOnlyRootFilesystem: true
🧯 If You Can't Patch
- Implement strict input validation for artifact uploads
- Run Argo Workflows containers with minimal privileges and read-only filesystems
🔍 How to Verify
Check if Vulnerable:
Check Argo Workflows version using kubectl get deployment -n argo -o jsonpath='{.spec.template.spec.containers[*].image}'
Check Version:
kubectl get deployment -n argo -o jsonpath='{.spec.template.spec.containers[*].image}' | grep -o 'v[0-9.]*'
Verify Fix Applied:
Confirm version is 3.6.12 or 3.7.3+ and test artifact extraction with known safe archives
📡 Detection & Monitoring
Log Indicators:
- Unusual file write operations outside /work/tmp directory
- Artifact extraction errors or warnings
Network Indicators:
- Suspicious artifact uploads to Argo Workflows API
SIEM Query:
source="argo-workflows" AND ("artifact extraction" OR "file write" OR "path traversal")
🔗 References
- https://github.com/argoproj/argo-workflows/blob/946a2d6b9ac3309371fe47f49ae94c33ca7d488d/workflow/executor/executor.go#L993
- https://github.com/argoproj/argo-workflows/commit/5659ad9b641fcf52c04ed594cd6493f9170f6011
- https://github.com/argoproj/argo-workflows/commit/9f6bc5d236cd1b24d607943384511d71ad17a4c3
- https://github.com/argoproj/argo-workflows/security/advisories/GHSA-p84v-gxvw-73pf