Katalog CVE

CVE-2025-61771

WysokieCVSS 7.5
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.56%

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

Streszczenie

W bibliotece Rack w wersjach przed 2.2.19, 3.1.17 i 3.2.2 parser Rack::Multipart::Parser przechowuje pola formularza niebędące plikami (bez atrybutu filename) w całości w pamięci jako obiekty String. Pojedyncze duże pole tekstowe w żądaniu multipart/form-data może zużyć równoważną ilość pamięci procesu, prowadząc do wyczerpania pamięci (OOM) i odmowy usługi.

Ocena ryzyka

Atakujący mogą wysyłać duże pola niebędące plikami, powodując nadmierne zużycie pamięci, awarie procesów roboczych lub poważne obciążenie garbage collectora. Wszystkie aplikacje Rack przetwarzające formularze multipart są narażone.

Rekomendacja

Zaktualizuj Rack do wersji 2.2.19, 3.1.17 lub 3.2.2. Jako obejście ogranicz maksymalny rozmiar ciała żądania na poziomie serwera WWW lub proxy (np. client_max_body_size w Nginx) oraz waliduj i odrzucaj nietypowo duże pola formularzy w aplikacji.

Inne podatności w Rack

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

Rack is a modular Ruby web server interface. In versions prior to 2.2.19, 3.1.17, and 3.2.2, ``Rack::Multipart::Parser` stores non-file form fields (parts without a `filename`) entirely in memory as Ruby `String` objects. A single large text field in a multipart/form-data request (hundreds of megabytes or more) can consume equivalent process memory, potentially leading to out-of-memory (OOM) conditions and denial of service (DoS). Attackers can send large non-file fields to trigger excessive memory usage. Impact scales with request size and concurrency, potentially leading to worker crashes or severe garbage-collection overhead. All Rack applications processing multipart form submissions are affected. Versions 2.2.19, 3.1.17, and 3.2.2 enforce a reasonable size cap for non-file fields (e.g., 2 MiB). Workarounds include restricting maximum request body size at the web-server or proxy layer (e.g., Nginx `client_max_body_size`) and validating and rejecting unusually large form fields at the application level.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS