CVE-2026-42294: Argo Workflows: Unauthenticated Memory Exhaustion (DoS) in Webhook Interceptor
Severity: Medium Component: Webhook Interceptor (server/auth/webhook) Vulnerability Type: Denial of Service (DoS)
Description The Webhook Interceptor loads the entire request body into memory before authenticating the request or verifying its signature. This occurs on the /api/v1/events/ endpoint, which is publicly accessible (albeit intended for webhooks). An attacker can send a request with an extremely large body (e.g., multiple gigabytes), causing the Argo Server to allocate excessive memory, potentially leading to an Out-Of-Memory (OOM) crash and denial of service.
Vulnerable Code In server/auth/webhook/interceptor.go: go func (i WebhookInterceptor) addWebhookAuthorization(r http.Request, kube kubernetes.Interface) error { // ... basic checks ... // Vulnerability: Reads entire body into memory unconditionally buf, := io.ReadAll(r.Body) defer func() { r.Body = io.NopCloser(bytes.NewBuffer(buf)) }() // ... subsequent logic finds correct service account and secret ... // ... verification happens later ... } The io.ReadAll call happens before the signature verification loop.
Impact - Service Availability: An attacker can crash the Argo Server, disrupting workflow execution and API access for all users.
PoC (Conceptual) 1. Target the webhook endpoint: POST /api/v1/events/some-namespace 2. Send a Content-Length: 1000000000 (1GB) header. 3. Stream 1GB of random data. 4. Monitor server memory usage. It will spike until 1GB is allocated or the process crashes.
Recommendation 1. Limit Body Size: Enforce a strict limit on webhook body size (e.g., 10MB) using http.MaxBytesReader. 2. Streaming Verification: If possible, verify the signature in a streaming fashion or use a temporary file for large payloads (though typically webhooks are small).
Other sources
Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. Prior to versions 3.7.14 and 4.0.5, the Webhook Interceptor loads the entire request body into memory before authenticating the request or verifying its signature. This occurs on the /api/v1/events/ endpoint, which is publicly accessible (albeit intended for webhooks). An attacker can send a request with an extremely large body (e.g., multiple gigabytes), causing the Argo Server to allocate excessive memory, potentially leading to an Out-Of-Memory (OOM) crash and denial of service. This issue has been patched in versions 3.7.14 and 4.0.5.
— MITRE
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
go/github.com/argoproj/argo-workflows/v4to a version that resolves this vulnerability.Fixed in 4.0.5 - Upgrade
Upgrade
go/github.com/argoproj/argo-workflows/v3to a version that resolves this vulnerability.Fixed in 3.7.14 - Upgrade
Upgrade
Argo Workflows Webhook Interceptorto a version that resolves this vulnerability.Fixed in 3.7.14 - Upgrade
Upgrade
Argo Workflows Webhook Interceptorto a version that resolves this vulnerability.Fixed in 4.0.5 - Configuration
Enforce a strict webhook request body size limit (e.g., 10MB) on the webhook handler using `http.MaxBytesReader` so excessively large bodies (e.g., 1GB+) cannot be read into memory.
Webhook Interceptor (`server/auth/webhook` / `server/auth/webhook/interceptor.go`) Maximum request body size (Limit Body Size) via http.MaxBytesReader = 10MB (example strict limit) - Compensating control
Monitor Argo Server memory usage to detect and respond to potential memory exhaustion/DoS attempts targeting the public webhook endpoint `/api/v1/events/`.
Event History
Frequently Asked Questions
What is the severity of CVE-2026-42294?
The severity of CVE-2026-42294 is classified as Medium.
What type of vulnerability is CVE-2026-42294?
CVE-2026-42294 is a Denial of Service (DoS) vulnerability.
How do I fix CVE-2026-42294?
To fix CVE-2026-42294, upgrade to version 4.0.5 for the v4 series or 3.7.14 for the v3 series of the affected software.
Which software is affected by CVE-2026-42294?
CVE-2026-42294 affects the Webhook Interceptor component of the Argo Workflows software versions 4.0.0 to 4.0.5 and prior to 3.7.14.
What is the impact of CVE-2026-42294?
The impact of CVE-2026-42294 is that it can lead to Denial of Service by loading the entire request body into memory before processing.