CVE-2026-48737 pyLoad: SSRF guard bypass via IPv6 6to4/NAT64 transition wrappers of internal IPs

Medium 4.9 Published Updated

Attackers can bypass SSRF protections in pyLoad using IPv6 transition addresses to access internal networks or cloud metadata.

Exploited in the wild
Not known
Login needed
Any signed-in user
Attackable
Over the internet
Victim action needed
Not needed
Fix
None listed

What is CVE-2026-48737?

CVE-2026-48737 is a medium-severity server-side request forgery vulnerability in pyload, published on 15 Sep 2026. Any signed-in user can exploit it over the network, with no action from the victim.

Official description

pyLoad is a free and open-source download manager written in Python. Prior to 0.5.0b3.dev101, is_global_address in src/pyload/core/utils/web/check.py relies on Python's global-address classification without examining IPv4 destinations embedded in 6to4 or NAT64 IPv6 addresses. A low-privileged user can submit an IPv6 literal through parse_urls to the pre-resolution is_global_host guard. Because host_to_ip is pinned to AF_INET, that guard does not evaluate a hostname's AAAA result. Separately, curl resolves hostnames before the pycurl PREREQFUNC in src/pyload/core/network/http/http_request.py applies the same vulnerable is_global_address check to the actual connection address, so a transition-form AAAA result can be permitted even when it terminates at an embedded loopback, private, CGNAT, or link-local IPv4 address. Exploitation requires the pyLoad host to route the applicable transition mechanism, including 6to4 on affected Python 3.9 through 3.11 deployments or NAT64 on a network with a NAT64 gateway. Successful exploitation can enable internal-network reconnaissance, timing-based confirmation, limited service disruption, or cloud metadata disclosure where the wrapped address is routable. This issue is fixed in version 0.5.0b3.dev101.

Weakness: CWE-918

Which versions are affected by CVE-2026-48737?

3 open source packages ship an affected version, including pyload-ng.

PackageAffectedFixed in
pyload-ng PyPIAll versions to 0.5.0b3.dev100None
pyload-ng PyPIAll versions to 0.5.0b3.dev100None
pyload-ng PyPIAll versions to 0.5.0b3.dev100None

How do I fix CVE-2026-48737?

No fix has been published for CVE-2026-48737 yet. Limit exposure of the affected software until one is available.

Upgrade, and send outbound requests through an allow-list that blocks internal addresses. More about Server-side request forgery.

Is CVE-2026-48737 being exploited?

It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-48737 exists.

Sources

Also known as GHSA-m5x5-28jr-gpjj, PYSEC-2026-2995.

Is CVE-2026-48737 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free