GitHub Advisoryadvisory · Go

GHSA-mp85-7mrq-r866 Envoy crashes when JWT authentication is configured with the remote JWKS fetching

MEDIUM Published 2025-12-05 Modified 2025-12-05 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

References