Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSteal victim's encrypted CodeVerifier cookie and authorization code
-
DeliverySubmit ~6,200 crafted CBC ciphertexts to /callback endpoint
-
ExploitObserve HTTP 302/401 differential responses as padding oracle
-
ExecutionRecover plaintext PKCE code_verifier byte-by-byte
-
PersistExchange recovered code_verifier plus stolen authorization code with authorization server
-
ImpactObtain victim OAuth access token
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Error message sanitization
MITRE ATT&CK
1 technique across 1 tactic: Discovery The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that the target Envoy instance has the OAuth2 HTTP filter explicitly configured - deployments not using this filter are completely unaffected regardless of Envoy version. The attacker must independently obtain two artifacts prior to oracle execution: (1) the victim's encrypted CodeVerifier cookie from an active OAuth2 session, and (2) the corresponding OAuth authorization code, both of which must belong to the same authentication flow. The victim must be actively engaged in an OAuth2 authorization flow at the time of attack (confirmed by UI:R in the CVSS vector). The attacker requires network-level access to submit queries to the Envoy /callback endpoint; if this endpoint is not internet-exposed, exploitation is limited to network-adjacent attackers. High attack complexity (AC:H from CVSS) is confirmed by the multi-step prerequisite of simultaneous cookie and code acquisition before the oracle phase begins. Non-PKCE OAuth2 flows or deployments using external identity proxies rather than Envoy's built-in filter are not affected. |
| Impact | The CVSS 6.8 score with AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N accurately reflects the attack's dual prerequisites - obtaining the encrypted cookie and a stolen authorization code - which together constitute the AC:H classification, and the requirement for an active victim OAuth session (UI:R). Despite the moderate composite score, the practical real-world impact is severe: success yields full account takeover via OAuth token theft. The ~100-second oracle execution window is operationally significant - it is fast enough to be exploitable within a single OAuth session's validity period, making the AC:H complexity real but not prohibitive for a motivated attacker in a network position to observe cookies. No EPSS data was provided in the input, preventing quantitative exploitation probability comparison. No CISA KEV listing exists, so active exploitation is unconfirmed. No POC code is identified in the references, making these distinct signals: the vulnerability is well-documented mechanically but not yet publicly weaponized as of this analysis. Deployments not using Envoy's OAuth2 HTTP filter are entirely unaffected - this is a non-default feature, which substantially reduces the exposed population relative to Envoy's full deployment footprint. |
| Exploit ScenarioDerived | An attacker targeting a user authenticating through an Envoy-fronted application intercepts or steals the victim's encrypted CodeVerifier cookie alongside the OAuth authorization code - for example, via a network-adjacent position or cookie-theft XSS on the initiating application. The attacker then submits approximately 6,200 byte-manipulated ciphertexts to Envoy's /callback endpoint over roughly 100 seconds, using the HTTP 302/401 differential responses as a padding oracle to recover the plaintext PKCE code_verifier. With both the recovered code_verifier and the stolen authorization code, the attacker completes the PKCE exchange against the authorization server and obtains the victim's OAuth access token, achieving full account takeover. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 26, 2026
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.
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.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
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.
Know when Envoy gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
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
2DescriptionCVE.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.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
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 |
EUVD-2026-39817
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB