highCVSS 7.5Vulnerability

CVE-2026-55149

## Unbounded Multipart Cookie Allocation DoS in vouch-proxy ### Summary vouch-proxy v0.47.2 contains an unauthenticated remote denial-of-service vulnerability in its multipart cookie reassembly logic. The `/validate` endpoint parses the total cookie part count directly from the attacker-controlled cookie name (e.g., `VouchCookie_1of<N>`) and passes it without any bounds check to `make([]string, N)`. A single HTTP request with `N=10000000000` causes the Go runtime to attempt a ~160 GB heap allocation, triggering a fatal out-of-memory error that crashes the server process immediately. No authentication or prior session is required. ### Details The vulnerability exists in `pkg/cookie/cookie.go`. The `Cookie()` function iterates over all cookies in the request, identifies multipart cookies by the `_NofM` suffix in their name, and initializes the reassembly slice on the first matching cookie: ```go // pkg/cookie/cookie.go:123–130 xOFy := strings.Replace(cookie.Name, cookieUnder, "", 1) xyArray := strings.Split(xOFy, "of") if numParts == -1 { if numParts, err = strconv.Atoi(xyArray[1]); err != nil { return "", fmt.Errorf("multipart cookie fail: %s", err) } cookieParts = make([]string, numParts) // sink: unbounded allocation } ``` The value in `xyArray[1]` comes directly from the cookie name supplied by the client. There is no maximum value check, no positive-range assertion, and no format validation before `strconv.Atoi` parses it. The result is used as the length argument to `make`, so an attacker who supplies `VouchCookie_1of10000000000` causes the runtime to request approximately `10_000_000_000 × 16 bytes ≈ 160 GB` of memory in a single call. The complete exploit path from network entry to crash: 1. `main.go:167` — `/validate` and `/_external-auth-:id` are registered wrapped in `JWTCacheHandler`. 2. `pkg/jwtmanager/jwtcache.go:54` — `JWTCacheHandler` calls `FindJWT(r)` **before** any authentication check. 3. `pkg/jwtmanager/jwtmanager.go:2

Properties

ghsa_id
GHSA-qqff-5854-px68
summary
vouch-proxy has an Unbounded Multipart Cookie Allocation DoS
severity
high
cvss_score
7.5
cve_id
CVE-2026-55149
cvss_vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
is_ghsa_only
false
ghsa_published
2026-08-20T17:26:39Z
source_url
https://github.com/advisories/GHSA-qqff-5854-px68
ghsa_updated
2026-08-20T17:26:48Z

Related Entities (4)

HAS_WEAKNESS (1)

[Weakness]Memory Allocation with Excessive Size Value

REPORTED_BY (1)

[Source]GitHub Advisory Database

VULNERABLE_TO (1)

[Software]go/github.com/vouch/vouch-proxy

AFFECTS (1)

[Software]go/github.com/vouch/vouch-proxy

Explore deeper with Ninja Signal's threat intelligence graph

CVE-2026-55149 (CVSS 7.5) — Ninja Signal Threat Intelligence | Ninja Signal