Potential privilege escalation on Kubernetes >= v1.19 when the Argo Sever is run with `--auth-mode=client`GHSA-prqf-xr2j-xf65
GHSA-prqf-xr2j-xf65 is a security 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.
Real-World Exposure
github.com/argoproj/argo-workflows/v3🐹github.com/argoproj/argo-workflows/v3Real-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
Impact
This is pro-active fix. No know exploits exist.
Impacted:
- You're running Kubernetes >= v1.19
- You're running Argo Server
- It is configured to with
--auth-mode=client - Is not configured with
--auth-mode=server - You are not running Argo Server in Kubernetes pod. E.g. on bare metal or other VM.
- You're using client key to authenticate on the server.
- The server has more permissions that the connecting client's account.
The client's authentication will be ignored and the server's authentication will be used. This will result in privilege escalation to that of the the server's account.
Patches
https://github.com/argoproj/argo-workflows/pull/6506
Workarounds
None.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🐹Go | github.com/argoproj/argo-workflows/v3 | ≥ 3.0.0&&< 3.0.9 | 3.0.9go get github.com/argoproj/argo-workflows/v3@v3.0.9 |
| 🐹Go | github.com/argoproj/argo-workflows/v3 | ≥ 3.1.0&&< 3.1.6 | 3.1.6go get github.com/argoproj/argo-workflows/v3@v3.1.6 |
Detection & 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.0.9 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-prqf-xr2j-xf65 is resolved across your whole dependency graph.
Workarounds
Close the privilege gap rather than the entry point: audit which accounts, roles and service identities can reach the affected operation, drop the component to the least privilege it actually needs, and review file and directory permissions created by earlier installs — a default left in place is what makes this reachable.
Frequently Asked Questions
Is GHSA-prqf-xr2j-xf65 in your dependencies?
Find it across Go, including transitive dependencies.