High

pyLoad is vulnerable to attacks that bypass localhost restrictions, enabling the creation of arbitrary packages

  • Disclosed: 08.07.2025
  • Updated: 11.10.2026 13:19

Summary

Any unauthenticated attacker can bypass the localhost restrictions posed by the application and utilize this to create arbitrary packages.

Details

Any unauthenticated attacker can bypass the localhost restrictions posed by the application and utilize this to create arbitrary packages. This is done by changing the Host header to the value of 127.0.0.1:9666.

PoC

The application has middleware that prevents access to several routes by checking whether the Host header has a specific value. We bypassed this restriction.

https://github.com/pyload/pyload/blob/4159a1191ec4fe6d927e57a9c4bb8f54e16c381d/src/pyload/webui/app/blueprints/cnl_blueprint.py#L21-L36

python
#: decorator
def local_check(func):
    @wraps(func)
    def wrapper(*args, **kwargs):
        remote_addr = flask.request.environ.get("REMOTE_ADDR", "0")
        http_host = flask.request.environ.get("HTTP_HOST", "0")

        if remote_addr in ("127.0.0.1", "::ffff:127.0.0.1", "::1", "localhost") or http_host in (
            "127.0.0.1:9666",
            "[::1]:9666",
        ):
            return func(*args, **kwargs)
        else:
            return "Forbidden", 403

    return wrapper

Below we see that the '/flash/add' endpoint uses the middleware above.

https://github.com/pyload/pyload/blob/4159a1191ec4fe6d927e57a9c4bb8f54e16c381d/src/pyload/webui/app/blueprints/cnl_blueprint.py#L56-L58C11

python
@bp.route("/flash/add", methods=["POST"], endpoint="add")
@local_check
def add():

Notice how we are not authorized to access this endpoint when sending a request. image

However, if we set the Host header to be 127.0.0.1:9666, we notice the request returns success. image

Checking the front end as an admin, we now see that this did indeed succeed. image

Impact

An unauthenticated user can perform actions that should only be available to authenticated users.

Affected software

Click a technology to see all vulnerabilities affecting it.

PlatformPackageVulnerable versionsFixed in
Python (PyPI) pyload-ng <= 0.5.0b3.dev88 no fix

References

CVSS score 7.5/10
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Weakness (CWE)
CWE-284, CWE-290
Platform
Python (PyPI)
Package
pyload-ng
Disclosed
08.07.2025
Updated
11.10.2026 13:19

Sources and licenses

OSV / GitHub Advisory Database - PYSEC-2026-1822 - PyPA Advisory Database; CC BY 4.0

OSV / GitHub Advisory Database - GHSA-x698-5hjm-w2m5 - CC BY 4.0

Vulnerability history: pyload-ng

All published vulnerabilities of this package (Python (PyPI)), newest first. Shows whether this is a one-off slip or a package that needs watching.

All (58) in the archive
Total entries
58
First → latest
01.2023 10.2026
Without a fix
24
Exploited in attacks
0

Severity breakdown

  • Critical 9
  • High 23
  • Medium 25
  • Low 1

Disclosures per year

  1. 2023: 9
  2. 2024: 8
  3. 2025: 8
  4. 2026: 33
Severity:
  1. High · 7.5 ghsa-889w-m37p-88m5 >= 0.5.0b3.dev98, <= 0.5.0b3.dev101 no fix
  2. High · 8.1 ghsa-r44w-v6gf-x3p6 < 0.5.0b3.dev101 0.5.0b3.dev101
  3. High · 8.1 CVE-2026-42315 < 0.5.0b3.dev100 0.5.0b3.dev100
  4. High · 8.8 CVE-2026-35463 <= 0.5.0b3.dev96 no fix
  5. High · 7.7 CVE-2026-35187 <= 0.5.0b3.dev96 no fix
  6. High · 7.1 CVE-2026-29778 >= 0.5.0b3.dev13, < 0.5.0b3.dev97 0.5.0b3.dev97
  7. High · 8.1 CVE-2025-61773 < 0.5.0b3.dev91 0.5.0b3.dev91
  8. High CVE-2025-57751 < 0.5.0b3.dev92 0.5.0b3.dev92
  9. High · 7.5 CVE-2025-54140 >= 0.5.0b3.dev89, < 0.5.0b3.dev90 0.5.0b3.dev90
  10. Critical · 9.8 CVE-2025-53890 < 0.20 0.20
  11. pyLoad is vulnerable to attacks that bypass localhost restrictions, enabling the creation of arbitrary packages this entry
    High · 7.5 CVE-2025-7346 <= 0.5.0b3.dev88 no fix
  12. Critical · 9.8 CVE-2024-39205 <= 0.5.0b3.dev85 no fix
  13. Critical · 9.1 CVE-2024-32880 <= 0.5.0 no fix
  14. Critical · 9.6 CVE-2024-22416 < 0.5.0b3.dev78 0.5.0b3.dev78
  15. High · 7.5 CVE-2024-21644 < 0.5.0b3.dev77 0.5.0b3.dev77
  16. High · 7.6 CVE-2023-47890 < 0.5.0b3.dev75 0.5.0b3.dev75
  17. High · 7.4 CVE-2023-0509 < 0.5.0b3.dev44 0.5.0b3.dev44
  18. Critical · 9.8 CVE-2023-0435 < 0.5.0b3.dev41 0.5.0b3.dev41
  19. Critical · 9.8 CVE-2023-0297 < 0.5.0b3.dev31 0.5.0b3.dev31

Know which vulnerabilities affect your application

With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.

Connect your application
DockRay newsletter

Application security in your inbox

Important vulnerabilities, actionable guidance and practical advice for your applications. Choose your technologies and follow what matters to your project.

  • A daily digest of new vulnerabilities, critical ones included.
  • Notifications about important updates.
  • Practical advice on application security and monitoring.

Leave empty to receive updates for every technology.

Free to subscribe. Unsubscribe with one click in any email.