CVE-2025-64527
Envoy is a high-performance edge/middle/service proxy. In 1.33.12, 1.34.10, 1.35.6, 1.36.2, and earlier, Envoy crashes when JWT authentication is configured with the remote JWKS fetching, allow_missing_or_failed is enabled, multiple JWT tokens are present in the request headers and the JWKS fetch fails. This is caused by a re-entry bug in the JwksFetcherImpl. When the first token's JWKS fetch fails, onJwksError() callback triggers processing of the second token, which calls fetch() again on the same fetcher object. The original callback's reset() then clears the second fetch's state (receiver_ and request_) which causes a crash when the async HTTP response arrives.
CVSS
- Versión: 3.1
- Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
- Puntuación base: 6.5
Probabilidad de explotación (EPSS)
- Probabilidad de explotación en los próximos 30 días: 0.53%
- Percentil entre todas las CVEs puntuadas: 43
- Fecha de la puntuación: 6/10/2026
EPSS (Exploit Prediction Scoring System, de FIRST) estima la probabilidad de que una vulnerabilidad sea explotada en 30 días. Complementa a CVSS (impacto) y a CISA KEV (explotación confirmada).
Tecnologías afectadas (1)
CWE
- CWE-476
Referencias
JSON original (NVD)
Mostrar
{
"id": "CVE-2025-64527",
"cveTags": [],
"metrics": {
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2025-64527",
"role": "CISA Coordinator",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "partial"
}
],
"version": "2.0.3",
"timestamp": "2025-12-03T20:18:07.790264Z"
}
}
],
"cvssMetricV31": [
{
"type": "Secondary",
"source": "security-advisories@github.com",
"cvssData": {
"scope": "UNCHANGED",
"version": "3.1",
"baseScore": 6.5,
"attackVector": "NETWORK",
"baseSeverity": "MEDIUM",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H",
"integrityImpact": "NONE",
"userInteraction": "NONE",
"attackComplexity": "LOW",
"availabilityImpact": "HIGH",
"privilegesRequired": "LOW",
"confidentialityImpact": "NONE"
},
"impactScore": 3.6,
"exploitabilityScore": 2.8
}
]
},
"affected": [
{
"source": "security-advisories@github.com",
"affectedData": [
{
"vendor": "envoyproxy",
"product": "envoy",
"versions": [
{
"status": "affected",
"version": ">= 1.36.0, <= 1.36.2"
},
{
"status": "affected",
"version": ">= 1.35.0, <= 1.35.6"
},
{
"status": "affected",
"version": ">= 1.34.0, <= 1.34.10"
},
{
"status": "affected",
"version": "<= 1.33.12"
}
]
}
]
}
],
"published": "2025-12-03T18:15:46.863",
"references": [
{
"url": "https://github.com/envoyproxy/envoy/security/advisories/GHSA-mp85-7mrq-r866",
"tags": [
"Exploit",
"Vendor Advisory"
],
"source": "security-advisories@github.com"
}
],
"vulnStatus": "Analyzed",
"weaknesses": [
{
"type": "Secondary",
"source": "security-advisories@github.com",
"description": [
{
"lang": "en",
"value": "CWE-476"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "Envoy is a high-performance edge/middle/service proxy. In 1.33.12, 1.34.10, 1.35.6, 1.36.2, and earlier, Envoy crashes when JWT authentication is configured with the remote JWKS fetching, allow_missing_or_failed is enabled, multiple JWT tokens are present in the request headers and the JWKS fetch fails. This is caused by a re-entry bug in the JwksFetcherImpl. When the first token's JWKS fetch fails, onJwksError() callback triggers processing of the second token, which calls fetch() again on the same fetcher object. The original callback's reset() then clears the second fetch's state (receiver_ and request_) which causes a crash when the async HTTP response arrives."
},
{
"lang": "es",
"value": "Envoy es un proxy de alto rendimiento de borde/intermedio/servicio. En las versiones 1.33.12, 1.34.10, 1.35.6, 1.36.2 y anteriores, Envoy falla cuando la autenticación JWT está configurada con la obtención remota de JWKS, 'allow_missing_or_failed' está habilitado, hay múltiples tokens JWT presentes en los encabezados de la solicitud y la obtención de JWKS falla. Esto es causado por un error de reentrada en JwksFetcherImpl. Cuando la obtención de JWKS del primer token falla, la devolución de llamada 'onJwksError()' activa el procesamiento del segundo token, que llama a 'fetch()' de nuevo en el mismo objeto 'fetcher'. El 'reset()' de la devolución de llamada original luego borra el estado de la segunda obtención ('receiver_' y 'request_'), lo que provoca un fallo cuando llega la respuesta HTTP asíncrona."
}
],
"lastModified": "2026-09-25T23:10:00.463",
"configurations": [
{
"nodes": [
{
"negate": false,
"cpeMatch": [
{
"criteria": "cpe:2.3:a:envoyproxy:envoy:*:*:*:*:*:*:*:*",
"vulnerable": true,
"matchCriteriaId": "B303FFFE-9973-4E7E-8A8C-DE847B725534",
"versionEndExcluding": "1.33.13"
},
{
"criteria": "cpe:2.3:a:envoyproxy:envoy:*:*:*:*:*:*:*:*",
"vulnerable": true,
"matchCriteriaId": "4419A82D-995F-4DD0-BAE1-3825791245D3",
"versionEndExcluding": "1.34.11",
"versionStartIncluding": "1.34.0"
},
{
"criteria": "cpe:2.3:a:envoyproxy:envoy:*:*:*:*:*:*:*:*",
"vulnerable": true,
"matchCriteriaId": "C50E067C-AE0D-4B14-A442-53603039EFCD",
"versionEndExcluding": "1.35.7",
"versionStartIncluding": "1.35.0"
},
{
"criteria": "cpe:2.3:a:envoyproxy:envoy:*:*:*:*:*:*:*:*",
"vulnerable": true,
"matchCriteriaId": "B39C3DF2-E73F-4B66-9504-C24E329ACB54",
"versionEndExcluding": "1.36.3",
"versionStartIncluding": "1.36.0"
}
],
"operator": "OR"
}
]
}
],
"sourceIdentifier": "security-advisories@github.com"
}