PyLoad, otwartoźródłowy menedżer pobierania napisany w Pythonie, akceptuje dowolne adresy URL bez walidacji, co pozwala na przeprowadzenie ataku Server-Side Request Forgery (SSRF). Uwierzytelniony atakujący może wykorzystać tę podatność do uzyskania dostępu do usług wewnętrznej sieci oraz wykradania wrażliwych metadanych dostawcy chmury.
▸ Pokaż oryginał (EN)
pyLoad is a free and open-source download manager written in Python. Prior to version 0.5.0b3.dev97, PyLoad's download engine accepts arbitrary URLs without validation, enabling Server-Side Request Forgery (SSRF) attacks. An authenticated attacker can exploit this to access internal network services and exfiltrate cloud provider metadata. On DigitalOcean droplets, this exposes sensitive infrastructure data including droplet ID, network configuration, region, authentication keys, and SSH keys configured in user-data/cloud-init. Version 0.5.0b3.dev97 contains a patch.
Silnik pobierania PyLoad nie weryfikuje przekazywanych adresów URL przed ich przetworzeniem, co stanowi klasyczny przypadek CWE-918 (SSRF). Atakujący z dostępem do konta w aplikacji może podać URL wskazujący na zasoby wewnętrzne — np. serwery metadanych instancji chmurowych. W przypadku środowisk DigitalOcean pozwala to na odpytanie punktów końcowych cloud metadata i pobranie wrażliwych danych infrastruktury, takich jak identyfikator dropletu, konfiguracja sieci, region, klucze uwierzytelniające oraz klucze SSH zdefiniowane w user-data/cloud-init.
Atakujący może uzyskać dostęp do wewnętrznych usług sieciowych niedostępnych z zewnątrz oraz wykraść wrażliwe dane infrastrukturalne z serwisów metadanych dostawcy chmury, w tym klucze SSH i dane uwierzytelniające, co może prowadzić do dalszego kompromitowania środowiska.
Należy zaktualizować PyLoad do wersji 0.5.0b3.dev97 lub nowszej, która zawiera patch eliminujący podatność. Patch dostępny jest w repozytorium projektu na GitHub (commit b76b6d4ee5e32d2118d26afdee1d0a9e57d4bfe8). Dodatkowo zaleca się ograniczenie dostępu do interfejsu PyLoad wyłącznie do zaufanych użytkowników oraz rozważenie segmentacji sieciowej blokującej dostęp instancji do punktów końcowych metadanych chmury (np. przez firewall na poziomie sieci).
PyLoad we wszystkich wersjach poprzedzających 0.5.0b3.dev97
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/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:XPyload
APPPyload0.5.0
Powiązane podatności
RCE w pyLoad przez zapis pliku wykonywalnego do folderu /scripts
pyload: RCE przez upload złośliwego szablonu przez uwierzytelnionego użytkownika
Excessive Attack Surface in GitHub repository pyload/pyload prior to 0.5.0b3.dev41.
Code Injection in GitHub repository pyload/pyload prior to 0.5.0b3.dev31.
pyLoad is a free and open-source download manager written in Python. Versions up to and including 0.5.0b3.dev9...