CVE-2023-49090
ŚrednieCVSS 6.8Streszczenie
CarrierWave to rozwiązanie do przesyłania plików dla Rails, Sinatra i innych frameworków Ruby. CarrierWave ma podatność polegającą na obejściu listy dozwolonych typów zawartości (Content-Type allowlist), co może prowadzić do XSS. Walidacja w allowlisted_content_type? określa uprawnienia Content-Type poprzez częściowe dopasowanie. Jeśli argument content_type zostanie spreparowany przez atakującego, dozwolone zostaną typy spoza listy. Poprawiono w wersjach 2.2.5 i 3.0.5.
Ocena ryzyka
Atakujący może przesłać plik z niebezpiecznym typem zawartości, co może prowadzić do ataku XSS i wykonania złośliwego skryptu w przeglądarce użytkownika. Może to skutkować kradzieżą sesji lub danych.
Rekomendacja
Zaktualizuj CarrierWave do wersji 2.2.5 lub 3.0.5 (lub nowszej). Upewnij się, że walidacja typu zawartości jest rygorystyczna.
Inne podatności w CarrierWave
Zobacz wszystkie- CVE-2024-29034Średnie
CarrierWave nie w pełni naprawił lukę CVE-2023-49090. Przy przesyłaniu do magazynu obiektowego (np. Amazon S3) można ustawić wartość Content-Type, która zostanie zinterpretowana przez przeglądarki inaczej niż pozwala na to content_type_allowlist, poprzez podanie wielu wartości oddzielonych przecinkami.
- CVE-2026-44587Średnie
W frameworku CarrierWave, w wersjach przed 2.2.7 i 3.1.3, sprawdzenie denylisty content_type_denylist nie poprawnie obsługuje metaznaki regex w wpisach tekstowych, co prowadzi do braku blokowania zamierzonych typów zawartości. W rezultacie aplikacje mogą być narażone na ataki XSS poprzez przesyłanie plików SVG zawierających złośliwy JavaScript.
Oryginalny opis (angielski, źródło NVD)
CarrierWave is a solution for file uploads for Rails, Sinatra and other Ruby web frameworks. CarrierWave has a Content-Type allowlist bypass vulnerability, possibly leading to XSS. The validation in `allowlisted_content_type?` determines Content-Type permissions by performing a partial match. If the `content_type` argument of `allowlisted_content_type?` is passed a value crafted by the attacker, Content-Types not included in the `content_type_allowlist` will be allowed. This issue has been patched in versions 2.2.5 and 3.0.5.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

