RCE via ZipSlip and symbolic links in argoproj/argo-workflowsGHSA-xrqc-7xgx-c9vh
HIGHFix: argoproj/argo-workflows@6b92af2GHSA-xrqc-7xgx-c9vh is a high-severity (CVSS 8.1) CWE-23 vulnerability in github.com/argoproj/argo-workflows/v3. A fix is available for github.com/argoproj/argo-workflows/v3 — see the affected versions and patch details below.
Exploitation Status
Proof-of-concept exploit code exists
- CISA’s SSVC triage found public proof-of-concept exploit code for this CVE, though no confirmed active exploitation.
- A successful exploit gives an attacker total control of the affected component, not partial access.
Exploitation and automatability from CISA’s SSVC triage for GHSA-xrqc-7xgx-c9vh.
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
How urgent is this, really
Where this sits among everything scored
Real-World Exposure
github.com/argoproj/argo-workflows/v3🐹github.com/argoproj/argo-workflows/v3🐹github.com/argoproj/argo-workflowsReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects Go packages — download data is not available via public APIs for these ecosystems.
Description
Summary
The patch deployed against CVE-2025-62156 is ineffective against malicious archives containing symbolic links.
Details
The untar code that handles symbolic links in archives is unsafe. Concretely, the computation of the link's target and the subsequent check are flawed: https://github.com/argoproj/argo-workflows/blob/5291e0b01f94ba864f96f795bb500f2cfc5ad799/workflow/executor/executor.go#L1034-L1037
PoC
- Create a malicious archive containing two files: a symbolik link with path "./work/foo" and target "/etc", and a normal text file with path "./work/foo/hostname".
- Deploy a workflow like the one in https://github.com/argoproj/argo-workflows/security/advisories/GHSA-p84v-gxvw-73pf with the malicious archive mounted at /work/tmp.
- Submit the workflow and wait for its execution.
- Connect to the corresponding pod and observe that the file "/etc/hostname" was altered by the untar operation performed on the malicious archive. The attacker can hence alter arbitrary files in this way.
Impact
The attacker can overwrite the file /var/run/argo/argoexec with a script of their choice, which will be executed at the pod's start.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🐹Go | github.com/argoproj/argo-workflows/v3 | ≥ 3.7.0&&< 3.7.5 | 3.7.5go get github.com/argoproj/argo-workflows/v3@v3.7.5 |
| 🐹Go | github.com/argoproj/argo-workflows/v3 | all versions | 3.6.14go get github.com/argoproj/argo-workflows/v3@v3.6.14 |
| 🐹Go | github.com/argoproj/argo-workflows | all versions | No fix |
Affected Products
argo workflowsargoprojDetection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for github.com/argoproj/argo-workflows/v3, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update github.com/argoproj/argo-workflows/v3 to 3.7.5 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-xrqc-7xgx-c9vh is resolved across your whole dependency graph.
Workarounds
Stop passing untrusted input into the interpreter or shell: call the affected binary with an argument array rather than a composed command string, reject anything outside a strict allowlist of expected values, and run the component under an account that cannot reach beyond the work it legitimately does.
Fixing This On Your OS
If you run this on a Linux distribution, patch through your package manager against the distro's own security advisory below — it tracks the exact backported fix for your release, which can ship on a different timeline (and sometimes a different severity) than the upstream project.
Red Hat Product Security has rated this issue as High severity (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H, 8.1) because an attacker with basic workflow submission privileges can supply a specially crafted archive that is automatically extracted without proper validation. The attack complexity is low and does not…
No mitigation is currently available that meets Red Hat Product Security’s standards for usability, deployment, applicability, or stability.Source: Red Hat security advisory for GHSA-xrqc-7xgx-c9vh (CC BY 4.0)
| Product | Fixed in | Advisory |
|---|---|---|
| Red Hat OpenShift AI 2.16 | rhoai/odh-data-science-pipelines-argo-argoexec-rhel8:1774282136 | RHSA-2026:5807 |
| Red Hat OpenShift AI 2.25 | rhoai/odh-data-science-pipelines-argo-argoexec-rhel9:1770224105 | RHSA-2026:2106 |
| Red Hat OpenShift AI 2.25 | rhoai/odh-data-science-pipelines-argo-argoexec-rhel9:1770281866 | RHSA-2026:2695 |
| Red Hat OpenShift AI 3.3 | rhoai/odh-data-science-pipelines-argo-argoexec-rhel9:1771500865 | RHSA-2026:3713 |
| Red Hat OpenShift AI 3.4 | rhoai/odh-data-science-pipelines-argo-argoexec-rhel9:1787002529 | RHSA-2026:60520 |
| Red Hat OpenShift AI 3.5 | rhoai/odh-latency-predictor-prediction-rhel9:1786552271 | RHSA-2026:60367 |
Frequently Asked Questions
Is GHSA-xrqc-7xgx-c9vh in your dependencies?
Find it across Go, including transitive dependencies.