CVE-2022-21654 Overview
CVE-2022-21654 is a critical certificate validation bypass vulnerability in Envoy, an open source edge and service proxy designed for cloud-native applications. The vulnerability exists in Envoy's TLS implementation, which incorrectly allows session re-use when certain certificate validation settings have been changed from their default configuration. This flaw could allow an attacker to bypass certificate validation checks by leveraging previously established TLS sessions, even after security settings have been modified to enforce stricter validation requirements.
Critical Impact
This vulnerability allows attackers to bypass TLS certificate validation by exploiting session reuse behavior, potentially enabling man-in-the-middle attacks and unauthorized access to protected services in cloud-native environments.
Affected Products
- Envoyproxy Envoy (multiple versions)
- Cloud-native applications using Envoy as service proxy
- Kubernetes environments with Envoy-based service mesh implementations
Discovery Timeline
- 2022-02-22 - CVE-2022-21654 published to NVD
- 2024-11-21 - Last updated in NVD database
Technical Details for CVE-2022-21654
Vulnerability Analysis
The vulnerability stems from improper certificate validation (CWE-295) in Envoy's TLS session management. When administrators modify certificate validation settings from their default configuration, existing TLS sessions may be improperly reused without re-validation against the new security requirements. This creates a window where connections established under less restrictive policies continue to be trusted even after stricter validation rules have been applied.
The core issue lies in how Envoy calculates session context IDs. The session ID hash did not properly include all certificate validation configuration parameters, meaning that configuration changes would not invalidate existing sessions. An attacker who established a valid session before security hardening could continue to use that session without being subject to the updated validation requirements.
Root Cause
The root cause is that the hash calculation for TLS session context IDs failed to incorporate all certificate validation configuration parameters. When computing whether a session could be reused, the system did not account for changes in validation settings, allowing sessions to persist across configuration changes that should have invalidated them. The CertificateValidationContextConfig interface and related validators needed to ensure that any configuration change affecting peer certificate validation would result in session re-negotiation.
Attack Vector
The attack requires network access to the Envoy proxy. An attacker could exploit this vulnerability by:
- Establishing a legitimate TLS session when permissive certificate validation settings are in place
- Waiting for or triggering a configuration change that tightens certificate validation requirements
- Continuing to use the pre-existing session, bypassing the newly enforced validation checks
- Leveraging the trusted session to access resources that should now require stricter certificate validation
// Security patch in envoy/ssl/certificate_validation_context_config.h
namespace Envoy {
namespace Ssl {
+// SECURITY NOTE
+//
+// When adding or changing this interface, it is likely that a change is needed to
+// `DefaultCertValidator::updateDigestForSessionId` in
+// `source/extensions/transport_sockets/tls/cert_validator/default_validator.cc`.
class CertificateValidationContextConfig {
public:
virtual ~CertificateValidationContextConfig() = default;
Source: GitHub Commit e9f936d85dc1edc34fabd0a1725ec180f2316353
The patch adds a critical security note emphasizing that any changes to the certificate validation interface must be reflected in the session ID digest calculation to prevent session reuse vulnerabilities.
// Security patch in source/extensions/transport_sockets/tls/cert_validator/cert_validator.h
bool handshaker_provides_certificates) PURE;
/**
- * Called when calculation hash for session context ids
+ * Called when calculation hash for session context ids. This hash MUST include all
+ * configuration used to validate a peer certificate, so that if this configuration
+ * is changed, sessions cannot be re-used and must be re-negotiated and re-validated
+ * using the new settings.
*
* @param md the store context
* @param hash_buffer the buffer used for digest calculation
Source: GitHub Commit e9f936d85dc1edc34fabd0a1725ec180f2316353
This patch updates the documentation to explicitly require that all validation configuration be included in the session hash calculation.
Detection Methods for CVE-2022-21654
Indicators of Compromise
- Unusual TLS session persistence across configuration reload events
- Connections maintaining established sessions after certificate validation policy changes
- Log entries showing session reuse for connections that should require re-validation
- Anomalous traffic patterns from previously established sessions accessing newly restricted resources
Detection Strategies
- Monitor Envoy access logs for sessions that persist through configuration changes affecting TLS validation
- Implement alerting on TLS session reuse events following administrative changes to certificate validation settings
- Deploy network monitoring to detect connections using sessions established before security policy tightening
- Review Envoy configuration management systems for changes to TLS validation parameters
Monitoring Recommendations
- Enable detailed TLS handshake logging in Envoy to track session establishment and reuse events
- Configure alerts for configuration changes affecting CertificateValidationContextConfig settings
- Implement periodic session inventory audits to identify long-lived sessions that may predate security changes
- Monitor for connections from endpoints that should fail current certificate validation requirements
How to Mitigate CVE-2022-21654
Immediate Actions Required
- Upgrade Envoy to a patched version that includes commit e9f936d85dc1edc34fabd0a1725ec180f2316353
- If unable to upgrade immediately, ensure that default TLS settings are used (as per vendor workaround)
- Force TLS session renegotiation after any certificate validation configuration changes
- Review and audit all certificate validation settings currently in use
Patch Information
The vulnerability has been addressed in the Envoy codebase through commit e9f936d85dc1edc34fabd0a1725ec180f2316353. The fix ensures that the session context ID hash includes all certificate validation configuration parameters, forcing session renegotiation when validation settings change. Users should upgrade to a version containing this fix. For detailed patch information, refer to the GitHub Security Advisory GHSA-5j4x-g36v-m283.
Workarounds
- Ensure that default TLS settings are used across all Envoy deployments until patching is possible
- Manually restart Envoy instances after any certificate validation configuration changes to clear existing sessions
- Implement external session management that forces re-authentication when security policies change
- Consider temporarily disabling TLS session caching in high-security environments
# Configuration example - Force session invalidation by restarting Envoy after config changes
# After modifying TLS certificate validation settings, restart the Envoy process
systemctl restart envoy
# Alternatively, send SIGHUP to reload configuration and clear sessions
pkill -HUP envoy
# Verify Envoy version contains the security fix
envoy --version
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

