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-2026-75597Średnie
Podatność w pyLoad, menedżerze pobierania, gdzie trasa `/web/<path:filename>` renderuje szablony Jinja2 bez wymaganego uwierzytelnienia. Dodatkowo literówka w obsłudze wyjątków powoduje wyciek wewnętrznych nazw zmiennych Jinja2 w odpowiedziach HTTP 500.
- CVE-2026-48484Średnie
Podatność w pyLoad, menedżerze pobierania, gdzie funkcja API `rpc` odczytuje całą zawartość przesłanego pliku do pamięci bez limitu rozmiaru, co może doprowadzić do wyczerpania pamięci serwera i zakończenia procesu.
- CVE-2026-48987Średnie
W pyLoad przed wersją 0.5.0b3.dev101 klasa EventManager w src/pyload/core/managers/event_manager.py dodaje obiekt Client do listy klientów dla każdego unikalnego UUID przesłanego do uwierzytelnionego endpointu API getEvents, ale get_events nie wywołuje dostępnej metody clean usuwającej nieaktywnych klientów. Uwierzytelniony użytkownik może wielokrotnie przesyłać unikalne wartości UUID, powodując nieograniczony wzrost liczby obiektów klientów i pamięci procesu.
- CVE-2026-48737Średnie
W pyLoad przed wersją 0.5.0b3.dev101 funkcja is_global_address w src/pyload/core/utils/web/check.py opiera się na klasyfikacji adresów globalnych Pythona bez analizy adresów IPv4 osadzonych w adresach IPv6 6to4 lub NAT64. Użytkownik o niskich uprawnieniach może przesłać literał IPv6 przez parse_urls do strażnika is_global_host przed rozwiązywaniem nazw, a curl rozwiązuje nazwy hostów przed zastosowaniem tej samej podatnej kontroli, co pozwala na połączenia do osadzonych adresów loopback, prywatnych, CGNAT lub link-local IPv4.
- CVE-2025-61773Wysokie
W pyLoad w wersjach przed 0.5.0b3.dev91 interfejs webowy zawierał niewystarczającą walidację danych wejściowych w endpoincie skryptu Captcha oraz w Blueprint Click'N'Load (CNL). Umożliwiało to przetwarzanie niezaufanych danych wejściowych w niebezpieczny sposób, co atakujący mógł wykorzystać do wstrzyknięcia dowolnej treści do interfejsu webowego lub manipulacji obsługą żądań, prowadząc do wykonania kodu po stronie klienta (XSS) lub innych niepożądanych zachowań. Parametry dostarczane przez użytkownika nie były odpowiednio walidowane ani sanityzowane przed przekazaniem do logiki aplikacji i generowania odpowiedzi. Wersja 0.5.0b3.dev91 zawiera poprawkę.
- 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).
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

