CVE-2026-35187
WysokieCVSS 7.7Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 19 - wyżej niż 19% wszystkich znanych CVE
Streszczenie
W pyLoad 0.5.0b3.dev96 i wcześniejszych funkcja parse_urls w src/pyload/core/api/__init__.py pobiera dowolne URL-e po stronie serwera bez walidacji. Uwierzytelniony użytkownik z uprawnieniem ADD może odczytywać zasoby wewnętrzne, pliki lokalne (file://) oraz korzystać z protokołów gopher:// i dict://.
Ocena ryzyka
Atakujący może uzyskać dostęp do wewnętrznych usług sieciowych, metadanych chmury oraz plików lokalnych, co może prowadzić do eskalacji uprawnień i wycieku danych.
Rekomendacja
Należy zaktualizować pyLoad do najnowszej wersji oraz ograniczyć uprawnienia ADD tylko do zaufanych użytkowników.
Inne podatności w pyLoad
Zobacz wszystkie- CVE-2026-42315Wysokie
W pyLoad przed wersją 0.5.0b3.dev100 występuje podatność, która pozwala użytkownikowi z uprawnieniami Perms.MODIFY na określenie dowolnych katalogów jako lokalizacji pobierania pakietu poprzez funkcję API set_package_data(). Brak sanitizacji w kluczu '_folder' umożliwia to działanie.
- CVE-2026-42313Wysokie
W pyLoad przed wersją 0.5.0b3.dev100 metoda API set_config_value() nieprawidłowo zarządzała opcjami bezpieczeństwa, co pozwalało uwierzytelnionym użytkownikom z uprawnieniami do ustawień na włączenie proxy i skierowanie ruchu przez kontrolowany przez nich host.
- CVE-2026-35459Krytyczne
pyLoad w wersji 0.5.0b3.dev96 i wcześniejszych zawiera podatność SSRF. Poprawka dla CVE-2026-33992 dodała walidację IP, ale pycurl automatycznie podąża za przekierowaniami HTTP, a cele przekierowań nie są sprawdzane. Uwierzytelniony użytkownik z uprawnieniami ADD może ominąć filtr SSRF, używając URL przekierowującego do wewnętrznego adresu.
- CVE-2023-47890Wysokie
pyLoad 0.5.0 zawiera podatność na nieograniczone przesyłanie plików, co pozwala atakującemu na wgranie dowolnych plików na serwer bez odpowiedniej walidacji.
Oryginalny opis (angielski, źródło NVD)
pyLoad is a free and open-source download manager written in Python. In 0.5.0b3.dev96 and earlier, the parse_urls API function in src/pyload/core/api/__init__.py fetches arbitrary URLs server-side via get_url(url) (pycurl) without any URL validation, protocol restriction, or IP blacklist. An authenticated user with ADD permission can make HTTP/HTTPS requests to internal network resources and cloud metadata endpoints, read local files via file:// protocol (pycurl reads the file server-side), interact with internal services via gopher:// and dict:// protocols, and enumerate file existence via error-based oracle (error 37 vs empty response).

