CVE-2026-34230
ŚrednieCVSS 5.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 35 - wyżej niż 35% wszystkich znanych CVE
Streszczenie
W interfejsie Rack (wersje przed 2.2.23, 3.1.21 i 3.2.6) stwierdzono podatność na atak DoS w metodzie Rack::Utils.select_best_encoding. Nieuwierzytelniony atakujący może wysłać żądanie z spreparowanym nagłówkiem Accept-Encoding, powodując nadmierne zużycie CPU przez Rack::Deflater.
Ocena ryzyka
Organizacja narażona jest na zdalny atak DoS, który może znacząco obciążyć serwer, prowadząc do spowolnienia lub unieruchomienia aplikacji korzystających z Rack::Deflater.
Rekomendacja
Należy zaktualizować Rack do wersji 2.2.23, 3.1.21 lub 3.2.6, które zawierają poprawkę.
Inne podatności w Rack
Zobacz wszystkie- CVE-2026-125111Wysokie
W Rack przed wersjami 2.2.25, 3.1.23 i 3.2.8 parser Rack::Multipart::Parser może zachować przetworzone dane w wewnętrznym buforze StringScanner, gdy odczyty kończą się wewnątrz lub bezpośrednio po nagłówkach multipart. Nieuwierzytelniony atakujący może wyrównać wiele małych części do granic rack.multipart.buffer_size, aby bufor rósł wraz z żądaniem, powodując wyczerpanie pamięci procesu roboczego.
- CVE-2026-125110Średnie
Rack to modularny interfejs serwera WWW dla Ruby. Przed wersjami 2.2.25, 3.1.23 i 3.2.8 Rack::Static serwuje ścieżkę po normalizacji Utils.clean_path_info, ale ocenia header_rules względem ścieżki tylko zdekodowanej URL. Nieuwierzytelniony atakujący może zażądać znanego pliku przez surowe lub procentowo zakodowane segmenty kropkowe i otrzymać go bez nagłówków bezpieczeństwa specyficznych dla ścieżki.
- CVE-2026-125109Średnie
Rack to modularny interfejs serwera WWW dla Ruby. Od wersji 3.0 do 3.1.23 i 3.2.8 metody Rack::Request#host_with_port, #base_url i #url mogą zwracać kontrolowany przez atakującego nieprawidłowy authority z nagłówków Host, X-Forwarded-Host lub Forwarded: host= bez weryfikacji. Aplikacje bez niezależnej listy dozwolonych hostów mogą emitować separatory wybrane przez atakującego.
- CVE-2026-125108Niskie
W Rack funkcja Rack::Multipart::Parser.parse_boundary może pominąć wiodący pusty lub cytowany parametr boundary w nagłówku Content-Type typu multipart i zaakceptować późniejszy parametr. Rack może więc przetworzyć treść żądania z boundary, którego zgodny pośrednik by nie wyprowadził, pozwalając polom formularza lub przesyłanym plikom dotrzeć do aplikacji bez zamierzonej inspekcji proxy lub WAF. Luka została naprawiona w wersjach 2.2.25, 3.1.23 i 3.2.8.
- CVE-2026-25500Średnie
Rack, modularny interfejs serwera WWW w Ruby, w wersjach przed 2.2.22, 3.1.20 i 3.2.5 generuje indeks katalogu HTML, w którym każdy plik jest linkiem. Jeśli na dysku istnieje plik o nazwie zaczynającej się od schematu javascript: (np. javascript:alert(1)), wygenerowany link ma href równy javascript:alert(1), co pozwala na wykonanie JavaScript po kliknięciu.
- CVE-2026-34835Średnie
Rack::Request nieprawidłowo parsuje nagłówek Host, akceptując znaki takie jak /, ?, # i @, które nie są dozwolone w RFC. Funkcja req.host zwraca pełną, nieprzefiltrowaną wartość, co pozwala na ominięcie walidacji hosta opartej na prostych prefiksach lub sufiksach.
- CVE-2026-34827Wysokie
Rack w wersjach od 3.0.0.beta1 do 3.1.20 oraz 3.2.0 do 3.2.5 zawiera podatność DoS w parserze multipart. Nieuwierzytelniony atakujący może wysłać spreparowane żądanie multipart/form-data z wieloma częściami zawierającymi długie, uciekane wartości parametrów, co powoduje nadmierne zużycie CPU podczas parsowania.
- CVE-2026-32762Średnie
Rack przed wersjami 3.1.21 i 3.2.6 nieprawidłowo parsuje nagłówek Forwarded (RFC 7239), dzieląc na średniki przed obsługą wartości cytowanych. Ponieważ cytowane wartości mogą zawierać średniki, nagłówek może być interpretowany jako wiele dyrektyw Forwarded, co umożliwia atakującym przemycanie parametrów host, proto, for lub by.
- CVE-2026-26962Średnie
Rack::Multipart::Parser nieprawidłowo rozwija złożone nagłówki multipart, zachowując CRLF w wartościach parametrów. Może to prowadzić do wstrzykiwania nagłówków lub dzielenia odpowiedzi HTTP w aplikacjach używających tych wartości.
- CVE-2026-34831Średnie
W bibliotece Rack (modularny interfejs serwera WWW w Ruby) w wersjach przed 2.2.23, 3.1.21 i 3.2.6 metoda Rack::Files#fail ustawia nagłówek Content-Length przy użyciu String#size zamiast String#bytesize. Gdy treść odpowiedzi zawiera wielobajtowe znaki UTF-8, deklarowana długość jest mniejsza niż faktyczna liczba wysłanych bajtów. Atakujący może wykorzystać tę rozbieżność, żądając nieistniejącej ścieżki z zakodowanymi procentowo znakami UTF-8, co prowadzi do nieprawidłowego ramowania odpowiedzi HTTP i potencjalnej desynchronizacji odpowiedzi w środowiskach polegających na błędnej wartości Content-Length.
Oryginalny opis (angielski, źródło NVD)
Rack is a modular Ruby web server interface. Prior to versions 2.2.23, 3.1.21, and 3.2.6, Rack::Utils.select_best_encoding processes Accept-Encoding values with quadratic time complexity when the header contains many wildcard (*) entries. Because this method is used by Rack::Deflater to choose a response encoding, an unauthenticated attacker can send a single request with a crafted Accept-Encoding header and cause disproportionate CPU consumption on the compression middleware path. This results in a denial of service condition for applications using Rack::Deflater. This issue has been patched in versions 2.2.23, 3.1.21, and 3.2.6.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

