CVE-2024-45614
ŚrednieCVSS 5.4Streszczenie
Puma to serwer webowy Ruby/Rack. W podatnych wersjach klienci mogli nadpisywać wartości ustawione przez pośrednie proxy (np. X-Forwarded-For), podając wersję tego samego nagłówka z podkreśleniem (X-Forwarded_For). Wersje v6.4.3/v5.6.9 odrzucają nagłówki z podkreśleniami, jeśli istnieje wersja bez podkreśleń, dzięki czemu nagłówki zdefiniowane przez proxy zawsze wygrywają.
Ocena ryzyka
Użytkownicy polegający na zmiennych ustawianych przez proxy mogą być narażeni na fałszowanie nagłówków, co może prowadzić do obejścia kontroli dostępu lub wstrzyknięcia danych.
Rekomendacja
Zaktualizuj Puma do wersji 6.4.3 lub 5.6.9 (lub nowszej). Rozważ włączenie w Nginx opcji underscores_in_headers do odrzucania takich nagłówków na poziomie proxy.
Inne podatności w Puma
Zobacz wszystkie- CVE-2026-68006Krytyczne
W Puma w wersji 5.0.0 i przed 8.0.3 występuje podatność pozwalająca atakującemu na wykonanie dowolnego kodu poprzez plik ext/puma_http11/http11_parser.rl.
- CVE-2026-47737Wysokie
Puma w wersjach od 5.5.0 do 7.2.1 i 8.0.2 jest podatna na fałszowanie źródłowego adresu IP. Gdy włączona jest opcja proxy_protocol: :v1 i używane są trwałe połączenia, Puma błędnie ponownie parsuje nagłówki PROXY po każdym żądaniu keep-alive, co pozwala atakującemu na wstrzyknięcie drugiego nagłówka PROXY i nadpisanie REMOTE_ADDR.
- CVE-2026-47736Wysokie
Podatność w serwerze Puma (wersje 5.5.0 do 7.2.1 i 8.0.2) z włączoną obsługą protokołu PROXY v1 pozwala atakującemu na ciągłe wysyłanie bajtów bez znaku CRLF, co powoduje niekontrolowany wzrost pamięci procesu oraz dodatkowe obciążenie CPU związane z wielokrotnym skanowaniem rosnącego bufora.
- CVE-2023-40175Wysokie
Puma, serwer WWW oparty na Ruby/Rack, przed wersjami 6.3.1 i 5.6.7, wykazywał nieprawidłowe zachowanie podczas analizy ciał z kodowaniem transferu chunked oraz nagłówków Content-Length o zerowej długości, co umożliwiało smuggling żądań HTTP.
Oryginalny opis (angielski, źródło NVD)
Puma is a Ruby/Rack web server built for parallelism. In affected versions clients could clobber values set by intermediate proxies (such as X-Forwarded-For) by providing a underscore version of the same header (X-Forwarded_For). Any users relying on proxy set variables is affected. v6.4.3/v5.6.9 now discards any headers using underscores if the non-underscore version also exists. Effectively, allowing the proxy defined headers to always win. Users are advised to upgrade. Nginx has a underscores_in_headers configuration variable to discard these headers at the proxy level as a mitigation. Any users that are implicitly trusting the proxy defined headers for security should immediately cease doing so until upgraded to the fixed versions.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

