CVE-2026-35187 json
pyLoad has SSRF in parse_urls API endpoint via unvalidated URL parameter
published 2026-04-04 7 mo ago modified 2026-07-24 3 mo ago also EUVD-2026-19470 , GHSA-2wvg-62qm-gj33 , PYSEC-2026-2988
- cvss
- 7.7
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.3%
- EPSS 0.3% chance of exploitation in 30 days, percentile 20%
- public exploits
- 0
- none known
Summary
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).
Patch / fix
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- 7 mo ago
Exploit prediction
0.28% chance of exploitation in the next 30 days, higher than 20% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/pyload/pyload/security/advisories/GHSA-2wvg-62qm-gj33 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 7.7 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N |
| GitHub | 3.1 | 7.7 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N |
| OSV | 3.1 | 7.7 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | pyload-ng | <=0.5.0b3.dev96 |
no fix listed |
Affected products
- pyload pyload
Classification
- Weakness
-
- CWE-918 Server-Side Request Forgery
References
-
github.com
/pyload/pyload/commit/4032e57d61d8f864e39f4dcfdb567527a50a9e1f
web, patch
-
github.com
/pyload/pyload/security/advisories/GHSA-2wvg-62qm-gj33
exploit, web, mitigation, vendor-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-35187
advisory
-
github.com
/pyload/pyload
package
-
pypi.org
/project/pyload-ng
package
-
github.com
/advisories/GHSA-2wvg-62qm-gj33
advisory
Sources
- CVE List CVE-2026-35187
- GitHub Advisory GHSA-2wvg-62qm-gj33
- NVD CVE-2026-35187
- OSV PYSEC-2026-2988
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.