Cyber Resilience

CVE-2026-35187

SSRF in Pyload-Ng Project Pyload-Ng ≤ 0.5.0b3.dev97

Public PoCSSRF
Published
06 April 2026
Modified
24 July 2026
Patch / advisory
CVSS Score v3.1 7.7
Click a component to see what it means
Raw vectorCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N
EPSS Score 0.0027 19th percentile
Risk Priority 53 floored blend · peak EPSS

Summary

CVE-2026-35187 is a high-severity SSRF (CWE-918) vulnerability in Pyload-Ng Project Pyload-Ng. Its CVSS base score is 7.7 (High).

Operationally, exploitation aligns with the MITRE ATT&CK technique Exploit Public-Facing Application (T1190); ranked at the 19th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog; a public proof-of-concept is referenced.

The strongest mitigations our analysis identified map to AC-4 (Information Flow Enforcement) and SI-10 (Information Input Validation) — see the control section below for these in your framework.

Deeper analysis AI-assisted summary

Synthesised by an AI model from the NVD description and linked references — a reading aid, not an authoritative source.

CVE-2026-35187 is a server-side request forgery (SSRF) vulnerability in pyLoad, a free and open-source download manager written in Python. It affects versions 0.5.0b3.dev96 and earlier, specifically the parse_urls API function in src/pyload/core/api/__init__.py. This function fetches arbitrary URLs server-side using get_url(url) from pycurl without URL validation, protocol restrictions, or IP blacklists, enabling unauthorized access to resources beyond the intended scope. The vulnerability carries a CVSS v3.1 base score of 7.7 (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N) and is associated with CWE-918.

An authenticated user with ADD permission can exploit this vulnerability remotely over the network with low complexity and no user interaction required. Attackers can make HTTP/HTTPS requests to internal network resources and cloud metadata endpoints, read local files server-side via the file:// protocol, interact with internal services using gopher:// and dict:// protocols, and enumerate file existence through error-based oracles (distinguishing error 37 from empty responses). This results in high confidentiality impact in a scoped environment, allowing broad internal reconnaissance and data exfiltration.

The GitHub security advisory (GHSA-2wvg-62qm-gj33) and associated commit (4032e57d61d8f864e39f4dcfdb567527a50a9e1f) detail the patch, which adds URL validation and restrictions to prevent arbitrary fetches. Security practitioners should upgrade to a version beyond 0.5.0b3.dev96 incorporating this fix and review access controls for the parse_urls API to limit ADD permissions.

OWASP Top 10 for Web (2025)

EU & UK References

Vulnerability Data

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…

more

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).

CWE(s)

Related Threats

MITRE ATT&CK Enterprise Techniques

T1190 Exploit Public-Facing Application Initial Access
Adversaries may attempt to exploit a weakness in an Internet-facing host or system to initially access a network.
Derived from this CVE’s CWE(s) via the direct CWE→ATT&CK cross-walk.

CVEs Like This One

CVE-2026-35459Same product: Pyload-Ng Project Pyload-Ng
CVE-2026-42315Same product: Pyload-Ng Project Pyload-Ng
CVE-2026-42314Same product: Pyload-Ng Project Pyload-Ng
CVE-2026-35592Same product: Pyload-Ng Project Pyload-Ng
CVE-2025-54802Same product: Pyload-Ng Project Pyload-Ng
CVE-2024-22416Same product: Pyload-Ng Project Pyload-Ng
CVE-2026-29778Same product: Pyload-Ng Project Pyload-Ng
CVE-2026-42313Same product: Pyload-Ng Project Pyload-Ng
CVE-2026-35463Same product: Pyload-Ng Project Pyload-Ng
CVE-2026-40594Same product: Pyload-Ng Project Pyload-Ng

Affected Assets

pyload-ng project
pyload-ng
≤ 0.5.0b3.dev97

Mitigating Controls

Control response

Prevent
Stop it (NIST 800-53)

Detect
Catch it (NIST detect / respond)

Harden
Shrink the surface (DISA STIG)

Validate
Prove the fix (OWASP ASVS)
  • V1.3.6
  • V1.5.3
  • V5.3.2
  • V10.4.7

Mitigating Controls (NIST 800-53 r5) AI

Information flow enforcement can restrict which destinations the server is allowed to contact on behalf of users.

Input validation directly stops untrusted URLs from being accepted and fetched without destination checks.

Boundary protection limits the network reach of server-initiated requests even if SSRF occurs.

Mitigating Controls (NIST CSF 2.0) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→CSF cross-walk (authority under review) — links open the control.

PR.PS-06 mostly match
prevents

Secure development practices directly include input validation and destination allow-listing that prevent SSRF.

DE.CM-09 partial match
prevents

Runtime monitoring of web applications and services can detect anomalous outbound requests indicative of SSRF.

ID.RA-01 partial match
prevents

Vulnerability identification processes can discover and record SSRF flaws in web applications.

PR.IR-01 partial match
prevents

Network segmentation and egress controls can limit the damage from successful SSRF requests.

Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.

prevents

Operational threat data describing SSRF campaigns can be used to tighten outbound-request allow-lists and detection rules before attackers exploit them.

References