CVE-2026-48706
ŚrednieCVSS 5.9Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 42 - wyżej niż 42% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Podatność może prowadzić do natychmiastowej odmowy usługi (awaria procesu) lub potencjalnie do zdalnego wykonania kodu (RCE), co stanowi poważne ryzyko dla dostępności i integralności systemów wykorzystujących Envoy jako proxy.
Rekomendacja
Należy niezwłocznie zaktualizować Envoy do wersji 1.35.13, 1.36.9, 1.37.5 lub 1.38.3. Jeśli aktualizacja nie jest możliwa, rozważ wyłączenie filtru grpc_stats z opcją stats_for_all_methods: true lub ograniczenie długości ścieżek żądań.
Inne podatności w Envoy
Zobacz wszystkie- CVE-2026-73553Wysokie
Envoy, otwartoźródłowy proxy brzegowe i usługowe, przed wersjami 1.36.10, 1.37.6, 1.38.4 i 1.39.1, ma podatność polegającą na niespójnej kanonizacji ścieżek. Gdy włączona jest opcja ignore_path_parameters_in_path_matching, router usuwa przyrostek średnika przed dopasowaniem, ale matcher RBAC url_path ocenia surową ścieżkę. Żądanie takie jak /admin;x może ominąć regułę DENY dla /admin, podczas gdy router nadal wybiera chronione backendy /admin.
- CVE-2026-73551Średnie
W Envoy przed wersjami 1.36.10, 1.37.6, 1.38.4 i 1.39.1 normalizacja URL nie rozpoznaje segmentów ścieżki kropki i podwójnej kropki, gdy niosą parametry średnika. Żądanie takie jak /user/..;foo=bar/admin nie jest kanonizowane do /admin nawet przy włączonej normalizacji ścieżki. Jeśli upstream interpretuje segment zgodnie z RFC 3986, a Envoy stosuje routing lub RBAC do nieskróconej ścieżki, zdalny klient może wywołać zamieszanie ścieżek i obejść politykę bezpieczeństwa opartą na ścieżce.
- CVE-2026-73511Średnie
W Envoy przed wersjami 1.36.10, 1.37.6, 1.38.4 i 1.39.1 Envoy normalnie dopasowuje surową ścieżkę żądania, podczas gdy backendy servletowe, takie jak Apache Tomcat, usuwają parametry macierzy średnika z każdego segmentu ścieżki przed rozwiązaniem zasobu. Opcja ignore_path_parameters_in_path_matching zamiast tego obcina na pierwszym średniku i nadal nie dopasowuje zachowania backendu per-segment. Zdalny klient może użyć parametryzowanego chronionego segmentu, aby Envoy wybrał niechroniony fallback, podczas gdy backend rozwiązuje chroniony zasób.
- CVE-2026-73552Wysokie
Envoy w wersjach przed 1.36.10, 1.37.6, 1.38.4 i 1.39.1 — mechanizm HTTP RBAC akceptuje poprawne pod względem RFC nieprzezroczyste bajty nagłówka, ale ocenia wartości safe_regex z semantyką podmiotu UTF-8 w RE2. Klient niższego szczebla może zachować zabroniony znacznik i dodać niepowiązany oktet obs-text, powodując, że RE2::FullMatch zwraca false, a polityka negatywna RBAC traktuje nieprawidłowy podmiot jako zwykły brak dopasowania. Dopasowywacz tras zorientowany na bajty może nadal zaobserwować znacznik, co pozwala żądaniu dotrzeć do trasy, która powinna być zablokowana. Luka została naprawiona w wersjach 1.36.10, 1.37.6, 1.38.4 i 1.39.1.
- CVE-2026-73550Wysokie
Envoy w wersjach przed 1.36.10, 1.37.6, 1.38.4 i 1.39.1 kopiuje każdą zdekodowaną wartość nagłówka Host HTTP/2 przed jej odrzuceniem, gdy :authority jest już obecne. Odrzucona wartość omija saveHeader, więc jej bajty i liczba nie są wliczane do limitów nagłówków żądania. Nieuwierzytelniony klient może użyć indeksowania HPACK, aby przesłać wiele odwołań do dużej wartości Host w ograniczonej liczbie strumieni, wymuszając ekstremalną alokację kopii nagłówków i doprowadzając do zabicia proxy przez OOM. Luka została naprawiona w wersjach 1.36.10, 1.37.6, 1.38.4 i 1.39.1.
- CVE-2026-73549Średnie
Envoy przed wersjami 1.36.10, 1.37.6, 1.38.4 i 1.39.1 ma podatność w ścieżkach Utility::copyInternetAddressAndPort oraz QUIC client-address, które rekonstruują adresy IPv6 ze scopem. Ciąg zawiera identyfikator zakresu (percent scope), którego inet_pton nie może sparsować, co powoduje wyjątek lub przerwanie działania. Wdrożenia transparent-proxy z ORIGINAL_DST oraz dotknięte ścieżki QUIC mogą zakończyć proces. Problem naprawiono w wersjach 1.36.10, 1.37.6, 1.38.4 i 1.39.1.
- CVE-2026-73548Wysokie
Envoy w wersjach przed 1.36.10, 1.37.6, 1.38.4 i 1.39.1 przekazuje dane dla skonfigurowanej aktualizacji HTTP innej niż WebSocket, zanim serwer nadrzędny zaakceptuje aktualizację. Nieuwierzytelniony klient HTTP/2 może umieścić kompletne żądanie HTTP/1.1 w danych rozszerzonego CONNECT; Envoy degraduje żądanie, zapisuje dane bez ramkowania do utrzymującego połączenie serwera nadrzędnego HTTP/1.1 i zwraca gniazdo do współdzielonej puli, podczas gdy przemycona odpowiedź pozostaje w kolejce. Inny klient niższego szczebla może następnie otrzymać odpowiedź atakującego. Luka została naprawiona w wersjach 1.36.10, 1.37.6, 1.38.4 i 1.39.1.
- CVE-2026-73547Wysokie
Envoy w wersjach przed 1.36.10, 1.37.6, 1.38.4 i 1.39.1 — filtr ext_authz zakłada, że żądanie zawiera pseudoheader :path podczas stosowania query_parameters_to_set lub query_parameters_to_remove z odpowiedzi autoryzacyjnej. Żądanie CONNECT bez ścieżki powoduje, że request_headers_->Path() zwraca null, a Filter::onComplete dereferencjonuje ten wskaźnik podczas parsowania ciągu zapytania. Nieuwierzytelniony klient niższego szczebla może spowodować awarię procesu Envoy, gdy filtr i odpowiedź autoryzacyjna używają modyfikacji parametrów zapytania. Luka została naprawiona w wersjach 1.36.10, 1.37.6, 1.38.4 i 1.39.1.
- CVE-2026-73546Wysokie
Envoy w wersjach przed 1.36.10, 1.37.6, 1.38.4 i 1.39.1 — punkt końcowy administracyjny /stats?format=html używa StatsHtmlRender, który sanityzuje wartości statystyk tekstowych, ale emituje nazwy statystyk bez kodowania HTML. Komponent płaszczyzny danych, taki jak grpc_stats z włączonym stats_for_all_methods, może włączyć kontrolowane przez atakującego segmenty ścieżki do buforowanych dynamicznych nazw statystyk. Gdy operator wyświetla stronę statystyk HTML, zapisana nazwa może wykonać skrypt w kontekście interfejsu administracyjnego i wysłać uprzywilejowane żądania tego samego pochodzenia. Luka została naprawiona w wersjach 1.36.10, 1.37.6, 1.38.4 i 1.39.1.
- CVE-2026-73513Wysokie
Envoy w wersjach przed 1.36.10, 1.37.6, 1.38.4 i 1.39.1 — opcjonalny kodek HTTP/2 dla serwera nadrzędnego oghttp2 akceptuje ramkę nagłówków traylera odpowiedzi HEADERS bez END_STREAM. Envoy kończy i odracza usunięcie ActiveRequest, podczas gdy oghttp2 utrzymuje strumień otwarty, pozostawiając ClientStreamImpl z wiszącym odwołaniem response_decoder_. Późniejsza ramka w strumieniu może wywołać zwolniony obiekt i spowodować awarię procesu. Luka została naprawiona w wersjach 1.36.10, 1.37.6, 1.38.4 i 1.39.1.
Oryginalny opis (angielski, źródło NVD)
Envoy is an open source edge and service proxy designed for cloud-native applications. From 1.34.0 until 1.35.13, 1.36.9, 1.37.5, and 1.38.3, a vulnerability exists in Envoy's TCP StatsD sink (TcpStatsdSink), where the thread-local flusher buffer can be overflowed by exceptionally long statistic names (e.g., >16KiB). During formatting, TcpStatsdSink reserves a single contiguous memory slice of 16KiB (FLUSH_SLICE_SIZE_BYTES). If formatting a single metric exceeds the remaining capacity, the flusher initiates a buffer rotation but incorrectly continues to allocate another fixed 16KiB slice. If an attacker can trigger a statistic name longer than 16KiB—for example, by sending an HTTP or gRPC request with an extremely long request path (:path) that is recorded by the grpc_stats filter configured with stats_for_all_methods: true—the flusher will attempt to copy the metric name using memcpy operations beyond the allocated heap buffer boundaries. This leads to a heap write overflow, which can cause immediate denial-of-service (process crash) or potential remote code execution (RCE). This vulnerability is fixed in 1.35.13, 1.36.9, 1.37.5, and 1.38.3.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

