CVE-2025-64527

6.5 MEDIUM

📋 TL;DR

Envoy proxy crashes when JWT authentication with remote JWKS fetching is configured, allow_missing_or_failed is enabled, multiple JWT tokens are present, and the JWKS fetch fails. This is a denial-of-service vulnerability affecting Envoy deployments using JWT authentication with specific configurations. The crash occurs due to a re-entry bug in JwksFetcherImpl.

💻 Affected Systems

Products:
  • Envoy Proxy
Versions: 1.33.12, 1.34.10, 1.35.6, 1.36.2, and earlier versions
Operating Systems: All platforms running Envoy
Default Config Vulnerable: ✅ No
Notes: Only vulnerable when JWT authentication is configured with remote JWKS fetching, allow_missing_or_failed is enabled, and multiple JWT tokens are present in requests.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete service outage for Envoy proxy instances, disrupting all traffic through affected proxies and causing cascading failures in dependent services.

🟠

Likely Case

Intermittent crashes of Envoy instances when JWT authentication fails under specific conditions, leading to service disruption and potential availability issues.

🟢

If Mitigated

No impact if JWT authentication is not used, or if proper version patching or workarounds are implemented.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Attackers can trigger the crash by sending requests with multiple JWT tokens when JWKS fetch is failing. No authentication required.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.33.13, 1.34.11, 1.35.7, 1.36.3

Vendor Advisory: https://github.com/envoyproxy/envoy/security/advisories/GHSA-mp85-7mrq-r866

Restart Required: Yes

Instructions:

1. Identify affected Envoy versions. 2. Upgrade to patched versions: 1.33.13, 1.34.11, 1.35.7, or 1.36.3. 3. Restart Envoy services. 4. Verify the fix by checking version and testing JWT authentication.

🔧 Temporary Workarounds

Disable allow_missing_or_failed

all

Disable the allow_missing_or_failed option in JWT authentication configuration to prevent the crash condition.

Modify Envoy configuration to set allow_missing_or_failed: false in JWT authentication filters

Disable remote JWKS fetching

all

Use local JWKS files instead of remote fetching to avoid the fetch failure condition.

Configure JWT authentication with local JWKS files instead of remote URLs

🧯 If You Can't Patch

  • Disable JWT authentication entirely if not required
  • Implement rate limiting and request filtering to block requests with multiple JWT tokens

🔍 How to Verify

Check if Vulnerable:

Check Envoy version and configuration for JWT authentication with remote JWKS fetching and allow_missing_or_failed enabled.

Check Version:

envoy --version

Verify Fix Applied:

Verify Envoy version is 1.33.13, 1.34.11, 1.35.7, or 1.36.3 or later, and test JWT authentication with multiple tokens during JWKS fetch failure.

📡 Detection & Monitoring

Log Indicators:

  • Envoy crash logs
  • Segmentation fault errors
  • JWT authentication failure logs followed by process termination

Network Indicators:

  • Sudden loss of connectivity to Envoy services
  • Increased HTTP 5xx errors from Envoy

SIEM Query:

source="envoy" AND ("segmentation fault" OR "crash" OR "SIGSEGV")

🔗 References

📤 Share & Export