CVE-2021-32781
Continued processing of requests after locally generated response
Severity Score
Exploit Likelihood
Affected Versions
Public Exploits
0Exploited in Wild
-Decision
Descriptions
Envoy is an open source L7 proxy and communication bus designed for large modern service oriented architectures. In affected versions after Envoy sends a locally generated response it must stop further processing of request or response data. However when local response is generated due the internal buffer overflow while request or response is processed by the filter chain the operation may not be stopped completely and result in accessing a freed memory block. A specifically constructed request delivered by an untrusted downstream or upstream peer in the presence of extensions that modify and increase the size of request or response bodies resulting in a Denial of Service when using extensions that modify and increase the size of request or response bodies, such as decompressor filter. Envoy versions 1.19.1, 1.18.4, 1.17.4, 1.16.5 contain fixes to address incomplete termination of request processing after locally generated response. As a workaround disable Envoy's decompressor, json-transcoder or grpc-web extensions or proprietary extensions that modify and increase the size of request or response bodies, if feasible.
Envoy es un proxy L7 de código abierto y un bus de comunicación diseñado para grandes arquitecturas modernas orientadas a servicios. En las versiones afectadas, después de que Envoy envíe una respuesta generada localmente, debe detener el procesamiento posterior de los datos de la petición o la respuesta. Sin embargo, cuando la respuesta local es generada debido al desbordamiento del búfer interno mientras la petición o la respuesta es procesada por la cadena de filtrado, la operación puede no detenerse completamente y resultar en el acceso a un bloque de memoria liberado. Una petición construida específicamente y entregada por un peer descendente o ascendente que no es confiable en presencia de extensiones que modifican y aumentan el tamaño de los cuerpos de la petición o la respuesta, resultando en una Denegación de Servicio cuando son usadas extensiones que modifican y aumentan el tamaño de los cuerpos de la petición o la respuesta, como el filtro descompresor. Envoy versiones 1.19.1, 1.18.4, 1.17.4 y 1.16.5, contienen correcciones para solucionar la terminación incompleta del procesamiento de peticiones tras la respuesta generada localmente. Como solución, deshabilite las extensiones decompressor, json-transcoder o grpc-web de Envoy o las extensiones propietarias que modifican y aumentan el tamaño de los cuerpos de las peticiones o respuestas, si es posible.
An out-of-bounds memory read vulnerability was found in envoyproxy/envoy. When using one of the following envoy extensions, it is possible to modify and increase the request or response body size of the following: the decompressor, json-transcoder, grpc-web, or other proprietary extensions. This flaw allows an attacker to read invalid memory and cause envoy to crash, resulting in a denial of service. The highest threat from this vulnerability is to system availability.
CVSS Scores
SSVC
- Decision:-
Timeline
- 2021-05-12 CVE Reserved
- 2021-08-24 CVE Published
- 2024-05-09 EPSS Updated
- 2024-08-03 CVE Updated
- ---------- Exploited in Wild
- ---------- KEV Due Date
- ---------- First Exploit
CWE
- CWE-120: Buffer Copy without Checking Size of Input ('Classic Buffer Overflow')
- CWE-416: Use After Free
- CWE-476: NULL Pointer Dereference
CAPEC
References (4)
URL | Tag | Source |
---|---|---|
https://github.com/envoyproxy/envoy/security/advisories/GHSA-5vhv-gp9v-42qv | Third Party Advisory |
URL | Date | SRC |
---|
URL | Date | SRC |
---|
URL | Date | SRC |
---|---|---|
https://www.envoyproxy.io/docs/envoy/v1.19.0/version_history/version_history | 2022-07-02 | |
https://access.redhat.com/security/cve/CVE-2021-32781 | 2021-08-25 | |
https://bugzilla.redhat.com/show_bug.cgi?id=1996935 | 2021-08-25 |
Affected Vendors, Products, and Versions
Vendor | Product | Version | Other | Status | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Vendor | Product | Version | Other | Status | <-- --> | Vendor | Product | Version | Other | Status |
Envoyproxy Search vendor "Envoyproxy" | Envoy Search vendor "Envoyproxy" for product "Envoy" | >= 1.16.0 < 1.16.5 Search vendor "Envoyproxy" for product "Envoy" and version " >= 1.16.0 < 1.16.5" | - |
Affected
| ||||||
Envoyproxy Search vendor "Envoyproxy" | Envoy Search vendor "Envoyproxy" for product "Envoy" | >= 1.17.0 < 1.17.4 Search vendor "Envoyproxy" for product "Envoy" and version " >= 1.17.0 < 1.17.4" | - |
Affected
| ||||||
Envoyproxy Search vendor "Envoyproxy" | Envoy Search vendor "Envoyproxy" for product "Envoy" | >= 1.18.0 < 1.18.4 Search vendor "Envoyproxy" for product "Envoy" and version " >= 1.18.0 < 1.18.4" | - |
Affected
| ||||||
Envoyproxy Search vendor "Envoyproxy" | Envoy Search vendor "Envoyproxy" for product "Envoy" | 1.19.0 Search vendor "Envoyproxy" for product "Envoy" and version "1.19.0" | - |
Affected
|