GitHub Advisoryadvisory · Go
GHSA-mp85-7mrq-r866 Envoy crashes when JWT authentication is configured with the remote JWKS fetching
MEDIUM
Official page ↗
- Aliases
- CVE-2025-64527
- Ecosystem
- Go
- Packages
- github.com/envoyproxy/envoy
- Severity
- Moderate
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
- Weaknesses
- CWE-476
- Reviewed
- 2025-12-05
Affected packages
• Go github.com/envoyproxy/envoy: >= 1.36.0, < 1.36.3 → fixed in 1.36.3
• Go github.com/envoyproxy/envoy: >= 1.35.0, < 1.35.7 → fixed in 1.35.7
• Go github.com/envoyproxy/envoy: >= 1.34.0, < 1.34.11 → fixed in 1.34.11
• Go github.com/envoyproxy/envoy: < 1.33.13 → fixed in 1.33.13
Description
Summary
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.
Details
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.
PoC
• `allow_missing_or_failed` or `allow_missing` is enabled
• The client send 2 Authorization headers
• the remote JWKS fetching failed
• There will be crash
Impact
DoS and Crash
Mitigation
• Disable the `allow_missing_or_failed` or `allow_missing`
Related
Alias · CVE (1)
- CVE-2025-64527 Envoy is a high-performance edge/middle/service proxy. vulnerability
Weakness · CWE (1)
- CWE-476 NULL Pointer Dereference weakness