CVE-2026-118658
ŚrednieCVSS 4.7Streszczenie
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.
Ocena ryzyka
Atakujący może wymusić przekierowanie użytkownika na nieoczekiwany schemat URI, co może być wykorzystane do phishingu lub uruchomienia niebezpiecznych protokołów. Wymaga to jednak użycia podatnego middleware przekierowującego oraz interakcji użytkownika z odpowiedzią.
Rekomendacja
Zaktualizuj framework Echo do wersji 4.15.2 lub 5.1.1 (lub nowszej). Jeśli aktualizacja nie jest możliwa, rozważ wyłączenie middleware WWWRedirect/NonWWWRedirect lub walidację nagłówków forwarded scheme na poziomie proxy.
Inne podatności w Echo
Zobacz wszystkie- 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.
- CVE-2026-118265Średnie
Echo, framework webowy dla Go, w wersjach od 5.0.0 do 5.4.1 ma podatność w ExtractIPFromRealIPHeader, który waliduje nagłówek X-Real-IP podany przez klienta zamiast bezpośredniego peera sieciowego. Klient może podać adres loopback lub prywatny i uzyskać sfałszowaną tożsamość z Context.RealIP.
Oryginalny opis (angielski, źródło NVD)
Echo is a Go web framework. Prior to 4.15.2 and 5.1.1, Context.Scheme returns values from X-Forwarded-Proto, X-Forwarded-Protocol, or X-Url-Scheme without validating that they are supported web schemes. WWWRedirect and NonWWWRedirect use that value to construct a Location header, so an attacker controlling a forwarded scheme header can cause a redirect to use an arbitrary URI scheme. Exploitation requires an affected redirect middleware and user interaction with the response; the HTTPS-specific redirect variants hardcode HTTPS and are unaffected. This issue is fixed in 4.15.2 and 5.1.1.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

