CVE-2026-118261
WysokieCVSS 8.2Streszczenie
Echo to framework webowy w Go. Od wersji 4.0.0 do 4.16.1 opcjonalne middleware Decompress w Echo v4 udostępnia strumień żądania zdekodowany gzipem bez ograniczania jego rozmiaru po dekompresji. Małe skompresowane żądanie może rozwinąć się do bardzo dużego ciała, gdy handler je odczytuje lub wiąże, zużywając nadmierną pamięć lub CPU i pozwalając powtarzanym lub równoległym żądaniom powodować odmowę usługi. Middleware nie jest domyślnie włączone, a ograniczanie tylko skompresowanego rozmiaru żądania nie ogranicza rozmiaru po dekodowaniu. Problem naprawiono w wersji 4.16.1.
Ocena ryzyka
Atakujący może wyczerpać pamięć i CPU serwera poprzez powtarzane lub równoległe żądania, powodując odmowę usługi. Ryzyko dotyczy aplikacji, które włączyły middleware Decompress na trasach dostępnych publicznie.
Rekomendacja
Zaktualizuj Echo do wersji 4.16.1 (lub nowszej). Jeśli nie jest to konieczne, wyłącz middleware Decompress, a jeśli jest używane, ogranicz rozmiar ciała po dekompresji.
Inne podatności w Echo
Zobacz wszystkie- CVE-2026-118658Średnie
W frameworku Echo (Go) w wersjach przed 4.15.2 i 5.1.1 funkcja Context.Scheme zwraca wartości z nagłówków X-Forwarded-Proto, X-Forwarded-Protocol lub X-Url-Scheme bez sprawdzenia, czy są to obsługiwane schematy sieciowe. Middleware WWWRedirect i NonWWWRedirect używają tej wartości do budowy nagłówka Location, co pozwala atakującemu kontrolującemu nagłówek forwarded scheme wymusić przekierowanie na dowolny schemat URI. Warianty przekierowań specyficzne dla HTTPS mają zaszyty na stałe HTTPS i nie są podatne.
- CVE-2026-118657Średnie
W frameworku Echo (Go) w wersjach przed 4.16.0 i 5.4.0 funkcja Context.Scheme bezwarunkowo ufa nagłówkom forwarded scheme od dowolnego klienta. Klient łączący się bezpośrednio przez zwykły HTTP może podać schemat HTTPS i ominąć HTTPSRedirect, ponieważ żądanie jest traktowane jako już bezpieczne. Dodatkowo, za proxy terminującym TLS przekazującym nagłówek kontrolowany przez atakującego, deklarowany schemat HTTP może stłumić nagłówek Strict-Transport-Security, mimo że przeglądarka otrzymuje odpowiedź przez HTTPS.
- CVE-2026-118656Średnie
W frameworku Echo (Go) w wersjach przed 4.16.0 i 5.4.0 funkcja sanitizeURI sprawdza tylko pierwsze dwa bajty celu przekierowania przed decyzją, czy zaczyna się on od pary separatorów ścieżki absolutnej. Gdy AddTrailingSlash lub RemoveTrailingSlash są skonfigurowane ze statusem przekierowania, forma ścieżki ze slashem, TAB-em i separatorem może ominąć zabezpieczenie, zostać wysłana w nagłówku Location i znormalizowana przez przeglądarkę do hosta kontrolowanego przez atakującego.
- CVE-2026-118655Średnie
W frameworku Echo przed wersjami 4.15.3 i 5.2.0 middleware.Static może ponownie dekodować już zdekodowaną wartość Request.URL.Path. Podwójnie zakodowane separatory mogą zostać zrekonstruowane przed rozwiązywaniem ścieżki w systemie plików, co pozwala dotrzeć do pliku chronionego przez trasę, gdy middleware statyczne jest zarejestrowane globalnie.
- CVE-2026-118654Średnie
W frameworku Echo przed wersjami 4.16.0 i 5.4.0 statyczne handlery plików mogą normalizować segmenty kropkowe po dopasowaniu trasy i serwować plik przez publiczną trasę statyczną, mimo że bezpośrednia ścieżka jest chroniona przez middleware na poziomie trasy. Luka jest wynikiem niekompletnej poprawki dla CVE-2026-55677.
- CVE-2026-118653Średnie
W frameworku Echo od wersji 4.0.0 do 5.1.0 Context.RealIP korzysta z wartości X-Forwarded-For lub X-Real-IP dostarczonych przez klienta, gdy Echo.IPExtractor nie jest ustawiony, a domyślny RateLimiter używa tego wyniku jako identyfikatora klienta. Atakujący może rotować wartości nagłówków, aby uzyskiwać nowe koszyki limitu i omijać ograniczenia oparte na IP.
- CVE-2026-118652Średnie
W frameworku Echo przed wersjami 4.16.0 i 5.4.0 funkcje Context.JSONP i Context.JSONPBlob wstawiają niezwalidowaną wartość callback do odpowiedzi JavaScript. Trasa przekazująca dane kontrolowane przez atakującego jako callback może zwrócić wykonywalny skrypt, umożliwiając reflected XSS.
- CVE-2026-118651Średnie
W frameworku Echo od wersji 4.0.0 do 5.4.0 middleware Proxy może zachować nagłówek X-Real-IP dostarczony przez atakującego i przekazać go do usługi nadrzędnej, gdy Echo.IPExtractor nie jest skonfigurowany. Zdalny klient może w ten sposób podszyć się pod adres klienta widziany przez usługi nadrzędne.
- CVE-2026-118650Wysokie
W frameworku Echo przed wersjami 4.16.0 i 5.4.0 globalnie zamontowany middleware.Static może interpretować zakodowaną ścieżkę żądania inaczej niż router. Router dopasowuje nadal zakodowaną ścieżkę, a handler statyczny używa zdekodowanego URL.Path, co może prowadzić do dostępu do plików.
- CVE-2026-118266Średnie
W frameworku Echo (Go) middleware MethodOverride przed wersjami 4.16.0 i 5.4.0 akceptuje bezpieczną metodę HTTP jako cel nadpisania dla żądania POST. Gdy MethodOverride jest zarejestrowany przed CSRF w łańcuchu middleware po routingu, wybór trasy zachowuje oryginalny handler POST, ale nadpisanie zmienia metodę przed sprawdzeniem CSRF, co powoduje pominięcie walidacji tokenu i kontroli Sec-Fetch-Site. Exploit cross-site wymaga uwierzytelnionej ofiary i wartości nadpisania kontrolowanej przez przeglądarkę, np. gettera formularza; domyślny getter nagłówka X-HTTP-Method-Override nie jest ustawialny przez formularz cross-site.
Oryginalny opis (angielski, źródło NVD)
Echo is a Go web framework. From 4.0.0 until 4.16.1, Echo v4's opt-in Decompress middleware exposes a gzip-decoded request stream without limiting its expanded size. A small compressed request can expand into a very large body when a handler reads or binds it, consuming excessive memory or CPU and allowing repeated or concurrent requests to cause denial of service. The middleware is not enabled by default, and limiting only the compressed request size does not bound the decoded size. This issue is fixed in 4.16.1.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

