CVE-2026-35187
published 2026-04-06CVE-2026-35187: 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…
PriorityP352high7.7CVSS 3.1
AVNACLPRLUINSCCHINAN
EPSS
0.27%
18.4th percentile
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).
Affected
3 ranges
| Vendor | Product | Version range | Fixed in |
|---|---|---|---|
| pyload-ng_project | pyload-ng | < 0.5.0b3.dev97 | 0.5.0b3.dev97 |
| pyload-ng_project | pyload-ng | 0 – 0.5.0b3.dev96 | — |
| pyload | pyload | <= 0.5.0b3.dev96 | — |
Stop checking back — get the weekly exploitation signal.
Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.
OSV
pyLoad: SSRF in parse_urls API endpoint via unvalidated URL parameter
osv·2026-04-04
CVE-2026-35187 [HIGH] pyLoad: SSRF in parse_urls API endpoint via unvalidated URL parameter
pyLoad: SSRF in parse_urls API endpoint via unvalidated URL parameter
## Vulnerability Details
**CWE-918**: Server-Side Request Forgery (SSRF)
The `parse_urls` API function in `src/pyload/core/api/__init__.py` (line 556) 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
- **Enumerate file existence** via error-based oracle (error 37 vs empty response)
### Vulnerable Code
**`src/pyload/core/api/__init__.py` (line 556)*
GHSA
pyLoad: SSRF in parse_urls API endpoint via unvalidated URL parameter
ghsa·2026-04-04
CVE-2026-35187 [HIGH] CWE-918 pyLoad: SSRF in parse_urls API endpoint via unvalidated URL parameter
pyLoad: SSRF in parse_urls API endpoint via unvalidated URL parameter
## Vulnerability Details
**CWE-918**: Server-Side Request Forgery (SSRF)
The `parse_urls` API function in `src/pyload/core/api/__init__.py` (line 556) 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
- **Enumerate file existence** via error-based oracle (error 37 vs empty response)
### Vulnerable Code
**`src/pyload/core/api/__init__.py` (line 556)*
No detection rules found.
No public exploits indexed.
2026-04-06
Published