CVE-2025-59822
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 30 - wyżej niż 30% wszystkich znanych CVE
Streszczenie
Http4s, interfejs Scala dla usług HTTP, w wersjach od 1.0.0-M1 do przed 1.0.0-M45 oraz przed 0.23.31 jest podatny na HTTP Request Smuggling z powodu nieprawidłowej obsługi sekcji trailer HTTP. Podatność może umożliwić atakującym obejście mechanizmów bezpieczeństwa serwerów front-endowych, przeprowadzanie ukierunkowanych ataków na aktywnych użytkowników i zatruwanie pamięci podręcznych. Warunkiem wykorzystania jest wdrożenie aplikacji za reverse-proxy przekazującym nagłówki trailer.
Ocena ryzyka
Atakujący może ominąć kontrole bezpieczeństwa i przeprowadzić ataki na użytkowników lub zatruć pamięć podręczną, co może prowadzić do wycieku danych lub wykonania złośliwego kodu po stronie klienta. Ryzyko dotyczy aplikacji korzystających z http4s za reverse-proxy.
Rekomendacja
Zaktualizuj http4s do wersji 1.0.0-M45 lub 0.23.31. Przejrzyj konfigurację reverse-proxy pod kątem obsługi nagłówków trailer i rozważ ich odrzucanie, jeśli nie są wymagane.
Inne podatności w Http4s
Zobacz wszystkie- CVE-2026-69204Krytyczne
W bibliotece Http4s (moduł Ember HTTP/1.1) w wersjach przed 0.23.35 i 1.0.0-M47 nie odrzucano komunikatów zawierających jednocześnie nagłówki Transfer-Encoding i Content-Length. Umożliwia to rozbieżność w interpretacji ramek treści między pośrednikiem a serwerem Ember, co pozwala na przemyt żądań HTTP (request smuggling).
- CVE-2026-88975Wysokie
Http4s to interfejs Scala dla usług HTTP. Przed wersjami 0.23.37 i 1.0.0-M48 pętla odczytu HTTP/2 w Ember analizuje 24-bitową zadeklarowaną długość ramki, ale czeka na buforowanie całego ładunku przed porównaniem go z SETTINGS_MAX_FRAME_SIZE. Nieuwierzytelniony peer może zadeklarować ładunek bliski 16 MiB na połączeniu, gdzie Ember reklamował 16 KiB, i albo ukończyć, albo powoli go przesyłać, powodując do 1024-krotną amplifikację pamięci na połączenie przed odrzuceniem ramki przez processFrame. Współdzielona pętla H2Connection.readLoop dotyczy serwerów i klientów z http2, podczas gdy konfiguracje z wyłączonym HTTP/2 są niezależne, a poprawka odrzuca zbyt duże ramki przed buforowaniem ich ładunków. Problem naprawiono w wersjach 0.23.37 i 1.0.0-M48.
- CVE-2026-69218Wysokie
Podatność w bibliotece Http4s (interfejs Scala dla usług HTTP) przed wersjami 0.23.35 i 1.0.0-M47. Gdy Ember otrzyma ramkę HTTP/2 HEADERS lub PUSH_PROMISE bez END_HEADERS, H2Connection buforuje blok nagłówków i kolejne fragmenty CONTINUATION bez ograniczenia rozmiaru, co pozwala zdalnemu peerowi wyczerpać pamięć sterty.
- CVE-2026-69217Wysokie
Podatność w bibliotece Http4s przed wersjami 0.23.35 i 1.0.0-M47. Parser HTTP/1.1 Ember akceptuje różniące się zduplikowane nagłówki Content-Length i używa ostatniej wartości zamiast odrzucić wiadomość, co umożliwia przemyt żądań CL.CL.
- CVE-2026-69215Średnie
Http4s to interfejs Scala dla usług HTTP. W wersjach przed 0.23.35 i 1.0.0-M47 middleware klienta CookieJar używa niezakotwiczonych sprawdzeń podciągów zamiast dopasowania domeny i ścieżki zgodnego z RFC 6265. W efekcie cookie dla example.com może zostać wysłane do kontrolowanej przez atakującego nazwy hosta, takiej jak evilexample.com.
- CVE-2026-69210Wysokie
Podatność w bibliotece Http4s przed wersjami 0.23.35 i 1.0.0-M47. WebSocket FrameTranscoder.bodyLength odrzuca rozszerzone długości ładunku powyżej Integer.MAX_VALUE, ale dopuszcza ujemne 64-bitowe długości, co pozwala zdalnemu klientowi wysłać ramkę powodującą nieskończoną pętlę dekodowania i wyczerpanie zasobów.
- CVE-2026-69206Średnie
Http4s to interfejs Scala dla usług HTTP. W wersjach przed 0.23.35 i 1.0.0-M47 ochrona przed powtórzeniem DigestAuth zapisuje lastNc plus jeden zamiast najwyższej zaakceptowanej wartości nonce-count. Gdy legalny klient wysyła nieciągłe wartości nc z powodu równoległych lub ponawianych żądań, przechowywany licznik pozostaje poniżej zaakceptowanego maksimum, co pozwala pasywnemu obserwatorowi na wielokrotne powtórzenie przechwyconego nagłówka Authorization.
- CVE-2026-69205Wysokie
Podatność w bibliotece Http4s przed wersjami 0.23.35 i 1.0.0-M47. Ember HeaderP.parse używa testu podciągu z rozróżnianiem wielkości liter dla wartości Transfer-Encoding i dekoduje bajty nagłówka z domyślnym zestawem znaków platformy, co prowadzi do niezgodności z pośrednikami zgodnymi z RFC i umożliwia przemyt żądań TE.CL lub TE.0.
- CVE-2026-69203Wysokie
W bibliotece Http4s (serwer Ember z włączonym HTTP/2) nie jest egzekwowane ograniczenie SETTINGS_MAX_CONCURRENT_STREAMS dla strumieni tworzonych przez drugą stronę. Jedno nieuwierzytelnione połączenie może otworzyć nieograniczoną liczbę strumieni, z których każdy zachowuje swój stan, aż do wyczerpania sterty. Ten sam problem występuje w ember-client przy ramkach PUSH_PROMISE, ponieważ parametr enablePush nie jest egzekwowany. Podatność naprawiono w wersjach 0.23.35 i 1.0.0-M47.
- CVE-2026-69202Wysokie
W bibliotece Http4s okno kontroli przepływu HTTP/2 w Ember jest uzupełniane na podstawie bajtów odebranych z sieci, a nie zużytych przez aplikację, a każdy strumień przechowuje dane w nieograniczonym kanale. Złośliwy peer może wysyłać treść szybciej, niż wolna lub nieodczytująca aplikacja ją konsumuje, co prowadzi do zatrzymania ładunków w stercie na serwerze lub kliencie Ember z włączonym withHttp2. Poprawka ogranicza kanał treści strumienia H2Connection, aby konsumpcja przez aplikację wymuszała backpressure. Podatność naprawiono w wersjach 0.23.35 i 1.0.0-M47.
Oryginalny opis (angielski, źródło NVD)
Http4s is a Scala interface for HTTP services. In versions from 1.0.0-M1 to before 1.0.0-M45 and before 0.23.31, http4s is vulnerable to HTTP Request Smuggling due to improper handling of HTTP trailer section. This vulnerability could enable attackers to bypass front-end servers security controls, launch targeted attacks against active users, and poison web caches. A pre-requisite for exploitation involves the web application being deployed behind a reverse-proxy that forwards trailer headers. This issue has been patched in versions 1.0.0-M45 and 0.23.31.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

