Katalog CVE

CVE-2026-34831

ŚrednieCVSS 4.8
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.15%

Percentyl 4 - wyżej niż 4% wszystkich znanych CVE

Streszczenie

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.

Ocena ryzyka

Podatność może umożliwić atakującemu desynchronizację odpowiedzi HTTP, co w skrajnych przypadkach może prowadzić do przechwycenia sesji lub innych ataków typu request smuggling.

Rekomendacja

Należy niezwłocznie zaktualizować bibliotekę Rack do wersji 2.2.23, 3.1.21 lub 3.2.6 (w zależności od używanej gałęzi).

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::Files#fail sets the Content-Length response header using String#size instead of String#bytesize. When the response body contains multibyte UTF-8 characters, the declared Content-Length is smaller than the number of bytes actually sent on the wire. Because Rack::Files reflects the requested path in 404 responses, an attacker can trigger this mismatch by requesting a non-existent path containing percent-encoded UTF-8 characters. This results in incorrect HTTP response framing and may cause response desynchronization in deployments that rely on the incorrect Content-Length value. 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