CVE-2026-46561: pyLoad SSRF via HTTP redirect bypass in parse_urls API

CVE-2026-46561 · Severity: medium · CVSS 5 · Published 2026-05-28

pyLoad is an open-source download manager used to automate file downloads. A security flaw allows an authenticated user to trick the application into making requests to internal network addresses that should be restricted. This could allow an attacker to access sensitive internal data, such as cloud metadata or private network services, potentially leading to the exposure of credentials or configuration details.

Technologies: pyLoad Next Gen, pyLoad Next Generation, pyload-ng (PyPI). Vendors: pyLoad, PyPI.

Quick answers

Is CVE-2026-46561 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-46561 being exploited in the wild.
How severe is CVE-2026-46561?
Medium severity, with a CVSS score of 5, published 28 May 2026.
Which products and versions are affected?
pyLoad Next Gen <= 0.5.0b3.dev87; pyLoad Next Generation < 0.5.0b3.dev100; pyload-ng (PyPI) < 0.5.0b3.dev100, ECOSYSTEM:introduced=0,fixed=0.5.0b3.dev100.
Is there a fix for CVE-2026-46561?
Yes. pyload-ng (PyPI): upgrade to 0.5.0b3.dev100 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-46561 attacked?
It is attacked over the network, in a network appliance.
Am I affected by CVE-2026-46561?
Check whether you run pyLoad Next Gen, pyLoad Next Generation or pyload-ng (PyPI) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • pyload-ng (PyPI): upgrade to 0.5.0b3.dev100 or later
    pip install "pyload-ng>=0.5.0b3.dev100"

Technical details

A Server-Side Request Forgery (SSRF) vulnerability exists in pyLoad's parse_urls API due to an incomplete fix for a previous vulnerability. While the application validates the initial URL hostname using is_global_host(), it fails to apply private IP restrictions to subsequent redirects handled by HTTPRequest. An authenticated attacker with 'ADD' permissions can provide a URL to a malicious server that returns a 302 redirect to a private IP (e.g., 127.0.0.1 or 169.254.169.254). Because HTTPRequest defaults to allow_private_ip = True, the internal request is executed. This allows attackers to probe internal services or leak cloud metadata. The issue is fixed in version 0.5.0b3.dev100.

Affected products

  • pyLoad pyload-ng <= 0.5.0b3.dev87

Identifiers

  • CVE-2026-46561
  • GHSA-8rp3-xc6w-5qp5
  • PYSEC-2026-2991

Timeline

  • 2026-05-15: advisory: GitHub Security Advisory published
  • 2026-05-28: disclosed: CVE published to NVD

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.