Argo Vulnerable to 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).
beschreibt (1)
Zugehörige CVEs.
| ID | Schweregrad | ausnutzbar | ||
|---|---|---|---|---|
| CVE-2026-42294US | high7.5 | — | ||
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 t… | ||||
Referenzen
Externe Belege — Patches, Meldungen, Analysen.
- https://access.redhat.com/security/cve/CVE-2026-42294WEB
- https://bugzilla.redhat.com/show_bug.cgi?id=2468443WEB
- https://github.com/argoproj/argo-workflowsPACKAGE
- https://github.com/argoproj/argo-workflows/commit/7abb4de6c3599e2d5d960ba4d5de4cf1df109965WEB
- https://github.com/argoproj/argo-workflows/releases/tag/v3.7.14WEB
- https://github.com/argoproj/argo-workflows/releases/tag/v4.0.5WEB
- https://github.com/argoproj/argo-workflows/security/advisories/GHSA-jcc8-g2q4-9fxqWEB
- https://nvd.nist.gov/vuln/detail/CVE-2026-42294ADVISORY
Advisories wie diese benennen die exponierten Produkte, die Angreifer auf Ihrer Angriffsfläche ins Visier nehmen. Sehen Sie mit einem kostenlosen Passiv-Scan, was exponiert ist.
Kostenloser Scan