CVE-2026-47775

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.
Configurations

Configuration 1 (hide)

OR cpe:2.3:a:envoyproxy:envoy:*:*:*:*:*:*:*:*
cpe:2.3:a:envoyproxy:envoy:*:*:*:*:*:*:*:*
cpe:2.3:a:envoyproxy:envoy:*:*:*:*:*:*:*:*
cpe:2.3:a:envoyproxy:envoy:*:*:*:*:*:*:*:*

History

25 Oct 2026, 17:10

Type Values Removed Values Added
Summary
  • (es) Envoy es un proxy de borde y de servicio de código abierto diseñado para aplicaciones nativas de la nube. Antes de 1.35.11, 1.36.7, 1.37.3 y 1.38.1, las funciones encrypt()/decrypt() del filtro HTTP de OAuth2 utilizan AES-256-CBC sin una etiqueta de autenticación (sin HMAC, sin AEAD). El endpoint /callback devuelve HTTP 302 en caso de descifrado exitoso y HTTP 401 en caso de fallo de relleno, creando un oráculo de relleno. Un atacante que obtiene la cookie CodeVerifier cifrada puede recuperar el code_verifier PKCE en texto plano en ~6.200 solicitudes (~100 segundos), luego intercambiarlo con un código de autorización robado para obtener el token de acceso de la víctima. Esta vulnerabilidad está corregida en 1.35.11, 1.36.7, 1.37.3 y 1.38.1.

Information

Published : 2026-06-26 18:16

Updated : 2026-10-25 17:10


NVD link : CVE-2026-47775

Mitre link : CVE-2026-47775

CVE.ORG link : CVE-2026-47775


JSON object : View

Products Affected

envoyproxy

  • envoy
CWE
CWE-209

Generation of Error Message Containing Sensitive Information

CWE-327

Use of a Broken or Risky Cryptographic Algorithm