W Django 3.2 przed wersją 3.2.19, 4.x przed 4.1.9 oraz 4.2 przed 4.2.1 możliwe było ominięcie walidacji podczas przesyłania wielu plików za pomocą jednego pola formularza. Podatność jest krytyczna, ponieważ pozwala atakującemu na przesłanie niezwalidowanych plików bez uwierzytelnienia.
▸ Pokaż oryginał (EN)
In Django 3.2 before 3.2.19, 4.x before 4.1.9, and 4.2 before 4.2.1, it was possible to bypass validation when using one form field to upload multiple files. This multiple upload has never been supported by forms.FileField or forms.ImageField (only the last uploaded file was validated). However, Django's "Uploading multiple files" documentation suggested otherwise.
Klasy forms.FileField oraz forms.ImageField nigdy nie obsługiwały wielokrotnego przesyłania plików — w przypadku podania wielu plików walidowana była jedynie ostatnia przesłana wartość. Dokumentacja Django dotycząca funkcji 'Uploading multiple files' błędnie sugerowała, że takie zachowanie jest wspierane i bezpieczne. Atakujący mógł wykorzystać tę rozbieżność, aby przesłać wiele plików przez pojedyncze pole formularza, z których wszystkie poza ostatnim omijały mechanizmy walidacji.
Atakujący bez uwierzytelnienia może przesłać na serwer pliki omijające zdefiniowane reguły walidacji, co może prowadzić do naruszenia integralności i poufności danych, a w zależności od logiki aplikacji — również do jej destabilizacji.
Należy zaktualizować Django do wersji 3.2.19, 4.1.9 lub 4.2.1 (odpowiednio do używanej gałęzi). Użytkownicy dystrybucji Fedora powinni zastosować patche dostępne za pośrednictwem oficjalnych repozytoriów pakietów.
Django 3.2 przed wersją 3.2.19, Django 4.x przed wersją 4.1.9, Django 4.2 przed wersją 4.2.1; a także dystrybucja Fedora zawierająca podatne wersje Django.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HDjangoproject Django
APPDjangoproject4.23.2 – 3.2.19 (bez)4.0 – 4.1.9 (bez)Fedora Project Fedora
OSFedoraproject38
Powiązane podatności
PHP CGI argument injection – RCE na Windows przez mechanizm Best-Fit
Type Confusion w V8 (Google Chrome) — RCE przez spreparowaną stronę HTML
Type Confusion w silniku V8 Chrome — zdalne wykonanie kodu (RCE)
Use-after-free w Google Chrome Visuals umożliwiający ucieczkę z sandbox
Integer overflow w Skia w Google Chrome — sandbox escape