pyLoad: Session Cookie Security Downgrade via Untrusted X-Forwarded-Proto Header Spoofing (Global State Race Condition)
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- High
- Impact type
- Security bypass
- Confidentiality · integrity · availability
- Low · None · Low
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-346.
Summary
pyLoad is a free and open-source download manager written in Python. Prior to 0.5.0b3.dev98, the set_session_cookie_secure before_request handler in src/pyload/webui/app/__init__.py reads the X-Forwarded-Proto header from any HTTP request without validating that the request originates from a trusted proxy, then mutates the global Flask configuration SESSION_COOKIE_SECURE on every request. Because pyLoad uses the multi-threaded Cheroot WSGI server (request_queue_size=512), this creates a race condition where an attacker's request can influence the Secure flag on other users' session cookies — either downgrading cookie security behind a TLS proxy or causing a session denial-of-service on plain HTTP deployments. This vulnerability is fixed in 0.5.0b3.dev98.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| pyload | pyload | before 0.5.0b3.dev98 | 0.5.0b3.dev98 | Patch available | CNA |
| — | pyload-ng (PyPI) | before 0.5.0b3.dev98 | 0.5.0b3.dev98 | Patch available | GHSA-mp82-fmj6-f22v |
- pyload Vendorpyload Affected before 0.5.0b3.dev98 Fixed in 0.5.0b3.dev98 Patch available CNA
- pyload-ng (PyPI) Vendor— Affected before 0.5.0b3.dev98 Fixed in 0.5.0b3.dev98 Patch available GHSA-mp82-fmj6-f22v
CPE configurations NVD · 1
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:pyload-ng_project:pyload-ng:*:*:*:*:*:python:*:* | before 0.5.0b3.dev69 | Vulnerable | Pyload-ng Project |
- cpe:2.3:a:pyload-ng_project:pyload-ng:*:*:*:*:*:python:*:* Versions before 0.5.0b3.dev69 Vulnerable ·Pyload-ng Project
Remediation
- Fix · CNA pyload (pyload) Fixed in 0.5.0b3.dev98
- Fix · GHSA-mp82-fmj6-f22v pyload-ng (PyPI) Fixed in 0.5.0b3.dev98 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-40594
- 2026-10-03 Alias added: GHSA-mp82-fmj6-f22v
References
More pyload vulnerabilities
- TI-2023-00282 Code Injection in pyload/pyload CVSS 3.1CRITICAL 9.8
- TI-2025-34556 pyLoad CNL Blueprint is vulnerable to Path Traversal through `dlc_path` leading to Remote Code Execution (RCE) CVSS 3.1CRITICAL 9.8
- TI-2025-33765 pyLoad vulnerable to remote code execution through js2py onCaptchaResult CVSS 3.1CRITICAL 9.8
- TI-2023-00412 Excessive Attack Surface in pyload/pyload CVSS 3.1CRITICAL 9.8
- TI-2026-27589 pyLoad has SSRF fix bypass via HTTP redirect CVSS 4.0CRITICAL 9.3
- TI-2026-26332 pyLoad: Server-Side Request Forgery via Download Link Submission Enables Cloud Metadata Exfiltration CVSS 4.0CRITICAL 9.3
Sources
- CVE-2026-40594 · CVE Program
- CVE-2026-40594 · NVD
- FIRST EPSS
- GHSA-mp82-fmj6-f22v · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences