CVE-2026-50285 in Pomeriuminfo

Summary

by MITRE • 09/17/2026

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.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Analysis

by VulDB Data Team • 09/18/2026

Pomerium serves as an identity-aware proxy that secures application access through context-based policies, but a critical vulnerability exists within its handling of HPKE V2 encrypted payloads during stateless authentication flows. The flaw resides specifically in the decodeQueryStringV2 function located in pkg/hpke/url.go, which is invoked when processing Stateless.Callback requests via internal/authenticateflow/stateless.go. In this specific operational mode, the system performs zstd decompression on data provided by the client without enforcing any output-memory limits or size constraints. This architectural oversight creates a significant resource exhaustion vector that can be exploited by unauthenticated actors to disrupt service availability and compromise the stability of the proxy infrastructure.

The exploitation mechanism relies on the sequence of operations during stateless authentication, where the receiver public key is publicly accessible via the /.well-known/pomerium/hpke-public-key endpoint. An attacker can retrieve this key and generate a corresponding sender key pair to encrypt maliciously crafted data. By sending a highly compressed payload containing zstd-compressed content to the /.pomerium/callback endpoint, the attacker triggers the decompression process before any integrity verification occurs. Because the system attempts to fully expand the compressed stream into memory prior to validating the sender's public key or checking HMAC signatures, it allocates substantial amounts of RAM proportional to the uncompressed size of the payload rather than its transmitted size. This design flaw allows an unauthenticated attacker to force the proxy to allocate hundreds of megabytes per single request, leading to rapid memory exhaustion.

The operational impact of this vulnerability is severe, primarily manifesting as a denial-of-service condition that degrades or completely crashes the Pomerium process. As the proxy consumes available system memory handling these oversized decompression operations, it becomes unable to serve legitimate traffic, effectively blocking access to all applications protected by the deployment. This resource exhaustion can also lead to instability in underlying infrastructure if multiple concurrent requests are launched, potentially causing cascading failures across dependent services. It is important to note that this vulnerability specifically affects hosted or stateless authentication deployments; stateful deployments remain unaffected because their callback mechanism verifies HMAC signatures prior to initiating decryption and decompression, thereby preventing the processing of unverified or malicious payloads until integrity has been established.

From a classification perspective, this issue aligns with CWE-787: Out-of-bounds Write in terms of resource allocation magnitude, though more accurately it falls under CWE-400: Uncontrolled Resource Consumption and CWE-1321: Improperly Controlled Compression Algorithm Strength due to the lack of limits on decompression output. In the context of the MITRE ATT&CK framework, this vulnerability facilitates Denial of Service via resource exhaustion (T1498) and potentially impacts availability by degrading service performance for legitimate users. The attack vector is classified as Network-based with Low complexity, requiring no prior authentication but relying on specific endpoint exposure.

To mitigate this risk, organizations running Pomerium must upgrade to version 0.32.8 or later immediately, where the decompression logic has been patched to enforce strict output-memory limits. Until an upgrade can be performed in environments that cannot tolerate downtime, administrators should consider implementing network-level rate limiting on the /.pomerium/callback endpoint to restrict the volume of requests processed per unit time. Additionally, deploying a Web Application Firewall with rules designed to detect and block excessively large query strings or POST bodies containing high-entropy compressed data can provide an additional layer of defense against exploitation attempts while maintaining service availability for legitimate traffic.

Responsible

GitHub M

Reservation

06/04/2026

Disclosure

09/17/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

very low

Sources

Want to stay up to date on a daily basis?

Enable the mail alert feature now!