Envoy OAuth2 Filter: Padding Oracle via AES-256-CBC Cookie Decryption
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- Required
- Attack complexity
- High
- Impact type
- Information disclosure
- Confidentiality · integrity · availability
- High · High · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA. Impact type from CWE-209.
Summary
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Total
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 |
|---|---|---|---|---|---|
| envoyproxy | envoy | 1.38.0 to before 1.38.1; 1.37.0 to before 1.37.3; 1.36.0 to before 1.36.7; before 1.35.11 | 1.38.1, 1.37.3, 1.36.7, 1.35.11 | Patch available | CNA |
- envoy Vendorenvoyproxy Affected 1.38.0 to before 1.38.1; 1.37.0 to before 1.37.3; 1.36.0 to before 1.36.7; before 1.35.11 Fixed in 1.38.1, 1.37.3, 1.36.7, 1.35.11 Patch available CNA
CPE configurations NVD · 1
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:envoyproxy:envoy:*:*:*:*:*:*:*:* | 1.35.0 to before 1.35.11; 1.36.0 to before 1.36.7; 1.37.0 to before 1.37.3; 1.38.0 to before 1.38.1 | Vulnerable | envoyproxy |
- cpe:2.3:a:envoyproxy:envoy:*:*:*:*:*:*:*:* Versions 1.35.0 to before 1.35.11; 1.36.0 to before 1.36.7; 1.37.0 to before 1.37.3; 1.38.0 to before 1.38.1 Vulnerable ·envoyproxy
Remediation
- Fix · CNA envoy (envoyproxy) Fixed in 1.38.1, 1.37.3, 1.36.7, 1.35.11
Timeline
- 2026-10-02 Threatist record created from CVE-2026-47775
References
More envoyproxy Envoy vulnerabilities
- TI-2026-79288 Out-of-bounds write in Google Brotli decoder KEVCVSS 4.0CRITICAL 9.2
- TI-2023-23979 The HTTP/2 protocol allows a denial of service (server resource consumption) because… KEVCVSS 3.1HIGH 7.5
- TI-2024-20001 HTTP/2: CPU exhaustion due to CONTINUATION frame flood CVSS 3.1HIGH 7.5
- TI-2024-18524 HTTP/2: memory exhaustion due to CONTINUATION frame flood CVSS 3.1HIGH 7.5
- TI-2023-12215 Envoy client may fake the header `x-envoy-original-path` CVSS 3.1CRITICAL 9.1
- TI-2023-18002 Envoy vulnerable to OAuth2 credentials exploit with permanent validity CVSS 3.1CRITICAL 9.8
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences