Severity by source
AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N
Network attack against /callback; AC:H reflects dual prerequisite of cookie and code theft; UI:R requires active victim OAuth session; C:H/I:H for token-based account takeover; A:N as no availability impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
3DescriptionCVE.org
Envoy is an open source edge and service proxy designed for cloud-native applications. Prior to 1.35.11, 1.36.7, 1.37.3, and 1.38.1, the OAuth2 HTTP filter's encrypt()/decrypt() functions use AES-256-CBC without an authentication tag (no HMAC, no AEAD). The /callback endpoint returns HTTP 302 on successful decryption and HTTP 401 on padding failure, creating a padding oracle. An attacker who obtains the encrypted CodeVerifier cookie can recover the plaintext PKCE code_verifier in ~6,200 requests (~100 seconds), then exchange it with a stolen authorization code to obtain the victim's access token. This vulnerability is fixed in 1.35.11, 1.36.7, 1.37.3, and 1.38.1.
AnalysisAI
The OAuth2 HTTP filter in Envoy Proxy prior to versions 1.35.11, 1.36.7, 1.37.3, and 1.38.1 implements AES-256-CBC encryption for the PKCE CodeVerifier cookie without any authentication tag, creating a classic padding oracle through differential HTTP responses on the /callback endpoint. An attacker who obtains the victim's encrypted CodeVerifier cookie and a stolen authorization code can recover the plaintext PKCE code_verifier in approximately 6,200 crafted requests (~100 seconds), then complete the OAuth token exchange to hijack the victim's access token. No public exploit code or CISA KEV listing has been identified at time of analysis; vendor-confirmed patches are available in all four current release branches.
Technical ContextAI
Envoy (cpe:2.3:a:envoyproxy:envoy) is a widely-used open-source L7 edge and service proxy deployed as a Kubernetes sidecar and API gateway in cloud-native environments. Its built-in OAuth2 HTTP filter implements PKCE (Proof Key for Code Exchange, RFC 7636), storing the code_verifier in an encrypted browser cookie using AES-256-CBC. The critical flaw is the absence of any authenticated encryption: no HMAC is appended, no AEAD mode (such as AES-GCM) is used, and no MAC-then-encrypt scheme protects the ciphertext integrity. CBC mode without an authentication tag is vulnerable to the Vaudenay-style padding oracle attack: by submitting arbitrary modified ciphertexts to the /callback endpoint, an attacker observes whether decryption yields valid PKCS#7 padding (HTTP 302 redirect on success) or invalid padding (HTTP 401 on failure). CWE-209 captures the information disclosure aspect - the differential HTTP status codes serve as the oracle signal leaking internal decryption state. The root class is unauthenticated symmetric encryption (CWE-327), with CWE-209 describing the specific oracle channel through which plaintext is recovered byte by byte.
RemediationAI
Upgrade Envoy to one of the vendor-confirmed fixed releases: 1.35.11, 1.36.7, 1.37.3, or 1.38.1, which replace the unauthenticated AES-256-CBC scheme with an authenticated encryption implementation, eliminating the padding oracle. Full advisory details are at https://github.com/envoyproxy/envoy/security/advisories/GHSA-396h-jpq4-vc7p. If an immediate upgrade is operationally infeasible, the most effective compensating control is to disable the OAuth2 HTTP filter on affected Envoy instances - this eliminates the attack surface entirely at the cost of breaking OAuth2-protected routes, which may require temporarily falling back to an upstream identity-aware proxy. As a lesser mitigation, restricting access to the /callback endpoint at the network or load-balancer layer to known trusted client IP ranges can raise the bar for oracle query submission, but does not remove the cryptographic flaw and is ineffective if legitimate users originate from broad or dynamic IP space.
Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour
Envoy is an open source edge and service proxy designed for cloud-native applications. Rated critical severity (CVSS 9.8
An issue was discovered in Envoy 1.12.0. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable,
An issue was discovered in Envoy 1.12.0. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable,
Envoy is an open source edge and service proxy designed for cloud-native applications. Rated critical severity (CVSS 9.1
Envoy is an open source edge and service proxy designed for cloud-native applications. Rated critical severity (CVSS 9.1
Envoy is an open source edge and service proxy designed for cloud-native applications. Rated critical severity (CVSS 9.1
Envoy through 1.15.0 only considers the first value when multiple header values are present for some HTTP headers. Rated
When parsing HTTP/1.x header values, Envoy 1.9.0 and before does not reject embedded zero characters (NUL, ASCII 0x0). R
Envoy's RBAC filter improperly concatenates duplicate HTTP headers into comma-separated strings instead of validating ea
Envoy is a cloud-native high-performance edge/middle/service proxy. Rated high severity (CVSS 7.5), this vulnerability i
Envoy is a cloud-native high-performance edge/middle/service proxy. Rated high severity (CVSS 7.5), this vulnerability i
Same weakness CWE-209 – Error Message Information Leak
View allSame technique Information Disclosure
View allVendor StatusVendor
SUSE
Severity: Moderate| Product | Status |
|---|---|
| openSUSE Tumbleweed | Fixed |
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-39817