Podatność w Envoy Proxy powoduje przepełnienie stosu (stack overflow) podczas niszczenia głęboko zagnieżdżonych obiektów JSON (ok. 100 000 poziomów). Atakujący może doprowadzić do odmowy usługi (DoS) bez żadnego uwierzytelnienia.
▸ Pokaż oryginał (EN)
Envoy is an open source edge and service proxy designed for cloud-native applications. Prior to 1.35.11, 1.36.7, 1.37.3, and 1.38.1, destructor of JSON Object results in stack overflow when deeply O(100K) nested objects are present. This vulnerability is fixed in 1.35.11, 1.36.7, 1.37.3, and 1.38.1.
Destruktor obiektu JSON w Envoy przetwarza zagnieżdżone struktury rekurencyjnie. Gdy obiekt JSON zawiera około 100 000 poziomów zagnieżdżenia, rekurencja podczas zwalniania pamięci wyczerpuje dostępną przestrzeń stosu, co skutkuje stack overflow i awarią procesu. Błąd jest klasyfikowany jako CWE-1124 (nadmierna głębokość dziedziczenia/zagnieżdżenia), a do jego wywołania wystarczy wysłanie odpowiednio spreparowanego żądania z ładunkiem JSON.
Atakujący zdalny, nieuwierzytelniony może wywołać awarię procesu Envoy, powodując całkowitą niedostępność usługi (Denial of Service). Nie ma wpływu na poufność ani integralność danych.
Należy zaktualizować Envoy do wersji 1.35.11, 1.36.7, 1.37.3 lub 1.38.1, w których podatność została naprawiona. Dodatkowo warto rozważyć wdrożenie limitów rozmiaru i głębokości przetwarzanych ładunków JSON na poziomie warstwy sieciowej lub konfiguracji proxy.
Envoyproxy Envoy w wersjach wcześniejszych niż 1.35.11, 1.36.7, 1.37.3 oraz 1.38.1.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HEnvoyproxy Envoy
APPEnvoyproxy1.18.0 – 1.35.13 (bez)1.36.0 – 1.36.9 (bez)1.37.0 – 1.37.5 (bez)1.38.0 – 1.38.3 (bez)
Powiązane podatności
Envoy OAuth filter: pominięcie walidacji access tokena umożliwia nieautoryzowany dostęp
Envoy 1.12.0: zapis poza buforami żądania HTTP/2 prowadzący do RCE lub bypass ACL
Bypass mechanizmów kontroli dostępu przez białe znaki w nagłówkach HTTP w Envoy
The HTTP/2 protocol allows a denial of service (server resource consumption) because request cancellation can ...
Envoy Proxy: NULL pointer dereference powodujący crash przy braku nagłówka hosta