CVE-2026-42294: Argo Workflows: Unauthenticated Memory Exhaustion (DoS) in Webhook Interceptor

Published May 4, 2026
·
Updated

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

4 affected componentsFixes available
go/github.com/argoproj/argo-workflows/v4>=4.0.0<4.0.5
4.0.5
go/github.com/argoproj/argo-workflows/v3<3.7.14
3.7.14
argoproj Argo Workflows Go<3.7.14
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 go/github.com/argoproj/argo-workflows/v3 to a version that resolves this vulnerability.

    Fixed in 3.7.14
  3. Upgrade

    Upgrade Argo Workflows Webhook Interceptor to a version that resolves this vulnerability.

    Fixed in 3.7.14
  4. Upgrade

    Upgrade Argo Workflows Webhook Interceptor to a version that resolves this vulnerability.

    Fixed in 4.0.5
  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)
  6. 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

May 4, 2026
Advisory Published
via GitHub·08:11 PM
Data Sourced
via GitHub·08:11 PM
DescriptionWeaknessAffected Software
May 9, 2026
CVE Published
via MITRE·03:45 AM
Data Sourced
via MITRE·03:45 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-42294?

The severity of CVE-2026-42294 is classified as Medium.

2

What type of vulnerability is CVE-2026-42294?

CVE-2026-42294 is a Denial of Service (DoS) vulnerability.

3

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.

4

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.

5

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.

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