CVE-2021-32780: Incorrect handling of H/2 GOAWAY followed by SETTINGS frames
Envoy is an open source L7 proxy and communication bus designed for large modern service oriented architectures. In affected versions Envoy transitions a H/2 connection to the CLOSED state when it receives a GOAWAY frame without any streams outstanding. The connection state is transitioned to DRAINING when it receives a SETTING frame with the SETTINGSMAXCONCURRENTSTREAMS parameter set to 0. Receiving these two frames in the same I/O event results in abnormal termination of the Envoy process due to invalid state transition from CLOSED to DRAINING. A sequence of H/2 frames delivered by an untrusted upstream server will result in Denial of Service in the presence of untrusted upstream servers. Envoy versions 1.19.1, 1.18.4 contain fixes to stop processing of pending H/2 frames after connection transition to the CLOSED state.
Affected Software
Event History
Frequently Asked Questions
What is CVE-2021-32780?
CVE-2021-32780 is a vulnerability in Envoy, an open-source L7 proxy and communication bus, where a H/2 connection is transitioned to the CLOSED state when it receives a GOAWAY frame without any streams outstanding, leading to potential denial of service.
How does CVE-2021-32780 affect Envoy?
In affected versions of Envoy (1.18.0 to 1.18.4, and 1.19.0), a H/2 connection is transitioned to the CLOSED state when it receives a GOAWAY frame without any streams outstanding, potentially causing denial of service.
What is the severity of CVE-2021-32780?
CVE-2021-32780 has a severity rating of 7.5 (high).
How do I fix CVE-2021-32780?
To fix CVE-2021-32780, it is recommended to upgrade to the latest version of Envoy (1.18.5 or 1.19.1) where the vulnerability is patched.
Where can I find more information about CVE-2021-32780?
You can find more information about CVE-2021-32780 on the Envoy security advisory page (https://github.com/envoyproxy/envoy/security/advisories/GHSA-j374-mjrw-vvp8) and the Envoy documentation (https://www.envoyproxy.io/docs/envoy/v1.19.0/version_history/version_history).