CVE-2023-27488: Envoy gRPC client produces invalid protobuf when an HTTP header with non-UTF8 value is received.
A flaw was found in Envoy which could allow an attacker to bypass authentication checks when extauthz is used by crafting a malicious http header with a non-UTF8 value.
Other sources
Envoy is an open source edge and service proxy designed for cloud-native applications. Prior to versions 1.26.0, 1.25.3, 1.24.4, 1.23.6, and 1.22.9, escalation of privileges is possible when failuremodeallow: true is configured for extauthz filter. For affected components that are used for logging and/or visibility, requests may not be logged by the receiving service.
When Envoy was configured to use extauthz, extproc, tap, ratelimit filters, and grpc access log service and an http header with non-UTF-8 data was received, Envoy would generate an invalid protobuf message and send it to the configured service. The receiving service would typically generate an error when decoding the protobuf message. For extauthz that was configured with failuremodeallow: true, the request would have been allowed in this case. For the other services, this could have resulted in other unforeseen errors such as a lack of visibility into requests.
As of versions 1.26.0, 1.25.3, 1.24.4, 1.23.6, and 1.22.9, Envoy by default sanitizes the values sent in gRPC service calls to be valid UTF-8, replacing data that is not valid UTF-8 with a ! character. This behavioral change can be temporarily reverted by setting runtime guard envoy.reloadablefeatures.servicesanitizenonutf8strings to false. As a workaround, one may set failuremodeallow: false for extauthz.
— MITRE
The attacker can use this vulnerability to bypass auth checks when extauthz is used.
— Red Hat
Affected Software
Event History
Frequently Asked Questions
What is CVE-2023-27488?
CVE-2023-27488 is a vulnerability in Envoy that allows an attacker to bypass authentication checks when ext_authz filter is configured with failure_mode_allow set to true.
What is the severity of CVE-2023-27488?
CVE-2023-27488 has a severity rating of 9.8 (critical).
Which versions of Envoy are affected by CVE-2023-27488?
Versions prior to 1.26.0, 1.25.3, 1.24.4, 1.23.6, and 1.22.9 of Envoy are affected by CVE-2023-27488.
How can an attacker exploit CVE-2023-27488?
By configuring the ext_authz filter with failure_mode_allow set to true, an attacker can escalate privileges and bypass authentication checks in Envoy.
Is there a fix available for CVE-2023-27488?
Yes, upgrading Envoy to a version equal to or greater than 1.26.0, 1.25.3, 1.24.4, 1.23.6, or 1.22.9 will fix CVE-2023-27488.