Pomerium: Pre-Auth Memory Exhaustion via Unbounded zstd Decompression in HPKE Callback
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Denial of service
- Confidentiality · integrity · availability
- None · None · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-770.
Summary
Pomerium is an identity and context-aware access proxy. Prior to 0.32.8, decodeQueryStringV2 in pkg/hpke/url.go performs zstd decompression of attacker-controlled data without an output-memory limit when DecryptURLValues processes HPKE V2 values for Stateless.Callback in internal/authenticateflow/stateless.go. In hosted or stateless authentication deployments, an unauthenticated attacker can obtain the receiver key from /.well-known/pomerium/hpke-public-key, provide a matching attacker-controlled sender key, and send a compressed payload to /.pomerium/callback that expands before validateSenderPublicKey rejects the sender. This can allocate hundreds of megabytes per request, exhaust proxy memory, crash or degrade the process, and block access to applications protected by the deployment. Stateful deployments are not affected because the stateful callback verifies its HMAC signature before decryption and decompression. This issue is fixed in version 0.32.8.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- Yes
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| pomerium | pomerium | before 0.32.8 | 0.32.8 | Patch available | CNA |
| — | github.com/pomerium/pomerium (Go) | 0.32.6 to before 0.32.8 | 0.32.8 | Patch available | GHSA-ggw3-5987-rx77 |
- pomerium Vendorpomerium Affected before 0.32.8 Fixed in 0.32.8 Patch available CNA
- github.com/pomerium/pomerium (Go) Vendor— Affected 0.32.6 to before 0.32.8 Fixed in 0.32.8 Patch available GHSA-ggw3-5987-rx77
Remediation
- Fix · CNA pomerium (pomerium) Fixed in 0.32.8
- Fix · GHSA-ggw3-5987-rx77 github.com/pomerium/pomerium (Go) Fixed in 0.32.8 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-50285
- 2026-10-03 Alias added: GHSA-ggw3-5987-rx77
References
More pomerium vulnerabilities
- TI-2023-16366 Incorrect Authorization with specially crafted requests CVSS 3.1CRITICAL 10.0
- TI-2022-08610 Exposure of Sensitive Information in Pomerium CVSS 3.1CRITICAL 9.1
- TI-2021-16548 Incorrect handling of H2 GOAWAY + SETTINGS frames CVSS 3.1HIGH 8.6
- TI-2021-18069 OIDC claims not updated from Identity Provider in Pomerium CVSS 3.1HIGH 8.8
- TI-2021-16591 Incorrect Authorization with specially crafted requests CVSS 3.1HIGH 8.6
- TI-2021-16589 Excessive CPU usage in Pomerium CVSS 3.1HIGH 7.5
Sources
- CVE-2026-50285 · CVE Program
- CVE-2026-50285 · NVD
- FIRST EPSS
- GHSA-ggw3-5987-rx77 · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences