Biblioteka django-s3file przed wersją 7.0.2 zawiera podatność path traversal w komponencie S3FileMiddleware, umożliwiającą atakującemu wyjście poza wyznaczone lokalizacje pre-signed upload na Amazon S3. W zależności od sposobu przetwarzania plików przez aplikację może to prowadzić do naruszenia poufności i integralności danych.
▸ Pokaż oryginał (EN)
django-s3file is a lightweight file upload input for Django and Amazon S3. Prior to 7.0.2, S3FileMiddleware is vulnerable to relative path traversal attacks, where an attacker can use a modified request to escape pre-signed upload locations and have the Django application load files from random locations into request.FILES. Depending on how files are handled, this may lead to confidentiality and integrity issues. This vulnerability is fixed in 7.0.2.
Podatność (CWE-22, CWE-26) polega na niewystarczającej walidacji ścieżek w S3FileMiddleware. Atakujący może spreparować zmodyfikowane żądanie HTTP zawierające sekwencje path traversal (np. '../'), które pozwalają uciec poza zatwierdzone, pre-signed lokalizacje uploadu na S3. W efekcie aplikacja Django zostaje skłoniona do załadowania pliku z arbitralnej lokalizacji w ramach bucketu S3 do obiektu request.FILES, skąd dalsze przetwarzanie przez aplikację może mieć niepożądane konsekwencje.
Atakujący bez uwierzytelnienia może zmusić aplikację do załadowania plików spoza dozwolonych lokalizacji S3, co może skutkować nieautoryzowanym dostępem do wrażliwych danych (naruszenie poufności) oraz możliwością podstawienia nieoczekiwanych plików do dalszego przetwarzania (naruszenie integralności).
Należy zaktualizować django-s3file do wersji 7.0.2 lub nowszej, w której podatność została naprawiona. Patche dostępne są w repozytorium projektu oraz w indeksie pakietów PyPI.
Biblioteka django-s3file we wszystkich wersjach wcześniejszych niż 7.0.2
Podatność została zgłoszona i naprawiona przez autora biblioteki; szczegóły opublikowano w GitHub Security Advisory GHSA-67qg-7284-2277.
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X