CVE-2026-47205
ŚrednieCVSS 5.9Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 29 - wyżej niż 29% wszystkich znanych CVE
Streszczenie
W Envoy od wersji 1.36.0 do 1.36.9, 1.37.5 i 1.38.3 występuje podatność Use-After-Free (UAF) w filtrze HTTP ext_authz. Problem pojawia się przy równoczesnym przetwarzaniu nadpisań autoryzacji na trasie i szybkim rozłączaniu klientów, co prowadzi do błędu segmentacji i awarii procesu.
Ocena ryzyka
Atakujący może wykorzystać tę podatność do wywołania awarii serwera Envoy (segfault), co skutkuje przerwaniem działania usług proxy i potencjalną niedostępnością aplikacji dla użytkowników.
Rekomendacja
Należy natychmiast zaktualizować Envoy do wersji 1.36.9, 1.37.5 lub 1.38.3, w zależności od używanej gałęzi. Aktualizacja eliminuje błąd UAF w filtrze ext_authz.
Inne podatności w Envoy
Zobacz wszystkie- CVE-2026-48090Średnie
W Envoy od wersji 1.37.0 do 1.37.5 oraz 1.38.3 filtr HTTP OAuth2 może pozostawić oczekujące żądanie wymiany tokena po zamknięciu strumienia downstream. Opóźniona odpowiedź AsyncClient może wywołać metody OAuth2Filter na już zwolnionym obiekcie, prowadząc do niezdefiniowanego zachowania, awarii procesu roboczego (utrata dostępności) oraz błędów use-after-free/invalid-vptr. Podatność została naprawiona w wersjach 1.37.5 i 1.38.3.
- CVE-2026-47220Wysokie
Podatność w Envoy umożliwia awarię procesu podczas logowania przy użyciu formatu %REQUESTED_SERVER_NAME(X:Y)% z opcjami HOST_FIRST lub SNI_FIRST, gdy nagłówek hosta jest nieobecny w żądaniu. Problem występuje w wersjach od 1.37.0 do 1.37.4 oraz 1.38.0 do 1.38.2.
- CVE-2026-48743Wysokie
Envoy przed wersjami 1.35.11, 1.36.7, 1.37.3 i 1.38.1 nieprawidłowo przetwarza żądania HTTP/3 z nagłówkiem Content-Length o wartości niezerowej, które są zakończone na poziomie transportu (HEADERS z FIN). Powoduje to wysłanie do backendu HTTP/1 żądania z niezapłaconym długiem ciała, co umożliwia desynchronizację i ominięcie reguł routingu.
- CVE-2026-48706Średnie
W Envoy od wersji 1.34.0 do 1.35.13, 1.36.9, 1.37.5 i 1.38.3 występuje podatność w komponencie TcpStatsdSink, gdzie przepełnienie bufora wątkowo-lokalnego może być wywołane przez bardzo długie nazwy statystyk (np. >16 KiB). Atakujący może wysłać żądanie HTTP lub gRPC z ekstremalnie długą ścieżką (:path), która jest rejestrowana przez filtr grpc_stats z opcją stats_for_all_methods: true, co prowadzi do zapisu poza przydzieloną pamięcią sterty.
- CVE-2026-48497Średnie
W Envoy, w przypadku skonfigurowania filtru DNS UDP z lokalnym lub zdalnym rozwiązywaniem nazw o długości 255 oktetów, zapytanie z taką nazwą powoduje nieprawidłowe zakończenie procesu. Problem wynika z błędnego założenia w czasie wykonania, że nazwa musi być krótsza niż 255 oktetów, co jest sprzeczne ze specyfikacją DNS RFC 1035.
- CVE-2026-48044Wysokie
W Envoy od wersji 1.23.0 do 1.35.11, 1.36.7, 1.37.3 i 1.38.1 wykryto podatność w implementacji dekompresora zstd (ZstdDecompressorImpl). Przetwarzanie specjalnie spreparowanego, silnie skompresowanego ładunku zstd może prowadzić do ogromnej alokacji pamięci. Atakujący może wykorzystać tę podatność do wyczerpania pamięci, co skutkuje zabiciem procesu przez OOM i odmową usługi (DoS) dla proxy Envoy.
- CVE-2026-48042Wysokie
W Envoy, otwartoźródłowym proxy brzegowym i usługowym dla aplikacji chmurowych, destruktor obiektu JSON powoduje przepełnienie stosu przy głęboko zagnieżdżonych obiektach (rzędu 100 tys. poziomów). Podatność występuje przed wersjami 1.35.11, 1.36.7, 1.37.3 i 1.38.1.
- CVE-2026-47778Średnie
W Envoy odkryto lukę w walidacji certyfikatów TLS, gdzie atakujący może dostarczyć certyfikat z dNSName SAN zawierającym wbudowany bajt NUL. Z powodu nieprawidłowego rzutowania na C-string, walidacja obcina nazwę domeny w miejscu NUL, co pozwala na pominięcie kontroli i autoryzację nieprawidłowego połączenia.
- CVE-2026-47775Średnie
Envoy przed wersjami 1.35.11, 1.36.7, 1.37.3 i 1.38.1 zawiera podatność w filtrze OAuth2, gdzie funkcje encrypt()/decrypt() używają AES-256-CBC bez znacznika uwierzytelniającego. Atakujący może wykorzystać padding oracle na endpointcie /callback, aby odzyskać plaintext PKCE code_verifier z zaszyfrowanego ciasteczka CodeVerifier.
- CVE-2026-47204Średnie
Podatność w filtrze envoy.filters.http.grpc_stats powoduje crash procesu Envoy przez dereferencję pustego wskaźnika, gdy żądanie protokołu Connect (Content-Type: application/connect+proto lub application/connect+json) trafia na trasę direct_response. Problem dotyczy wersji od 1.26.0 do 1.35.13, 1.36.9, 1.37.5 i 1.38.3.
Oryginalny opis (angielski, źródło NVD)
Envoy is an open source edge and service proxy designed for cloud-native applications. From 1.36.0 until 1.36.9, 1.37.5, and 1.38.3, a Use-After-Free (UAF) vulnerability leading to a sudden segmentation fault exists in Envoy's ext_authz HTTP filter when processing per-route authorization overrides concurrently with rapid downstream client disconnects. During standard request lifecycles, Envoy instantiates the ext_authz filter with a foundational authorization client object (client_). If a matched route dictates a dynamic per-route HTTP or gRPC authorization service override, the filter generates a localized client. In the vulnerable implementation, this transient client aggressively overwrote the default client_ unique pointer by executing client_ = std::move(per_route_client). When a client rapidly establishes and subsequently tears down a stream (such as rapidly refreshing a protected WebSocket endpoint), the downstream triggers the ConnectionManagerImpl::doDeferredStreamDestroy() -> ActiveStream::onResetStream() lifecycle. Envoy immediately sequences Filter::onDestroy() in an attempt to securely abort dispatched asynchronous authorization check transactions via client_->cancel(). By destructing the default client abruptly during initiateCall, a memory lifecycle misalignment occurs within the async client manager. The stream teardown fails to reliably track and cancel the dynamically bound asynchronous authorization tasks, orchestrating a sequence where a late asynchronous callback from the network evaluates against a heavily destroyed ActiveStream validation span, generating a UAF process crash. This vulnerability is fixed in 1.36.9, 1.37.5, and 1.38.3.

