Description
pyLoad is a free and open-source download manager written in Python. Prior to 0.5.0b3.dev101, the `/web/<path:filename>` route in `src/pyload/webui/app/blueprints/app_blueprint.py` renders Jinja2 templates without any authentication requirement. Every equivalent direct route (`/logs`, `/settings`, `/queue`, `/dashboard`, etc.) is protected by `@login_required`, but the underlying templates for all of these pages are accessible unauthenticated via this endpoint. Combined with an exception attribute typo in `src/pyload/webui/app/handlers.py` (`exc.desc` instead of `exc.description`), internal Jinja2 variable names are leaked in HTTP 500 response bodies to unauthenticated callers. An attacker can also enumerate all valid template names by observing 200 vs 500 response differentiation. Version 0.5.0b3.dev101 contains a patch.
Published: 2026-10-09
Score: 5.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Information disclosure and authentication bypass
Action: Apply patch
AI Analysis

Impact

An unauthenticated user can access the /web/<path> endpoint, which renders Jinja2 templates without authentication. This allows retrieval of templates that should be protected by @login_required, such as /logs, /settings, or /dashboard. In addition, a typo in the exception handler exposes internal Jinja2 variable names in HTTP 500 responses. The result is that an attacker can view sensitive template content, enumerate available templates, and obtain internal error details, which could aid further analysis. The weakness is consistent with authentication bypass (CWE-306) and information exposure (CWE-209).

Affected Systems

The issue affects the pyLoad download manager, versions prior to 0.5.0b3.dev101. All platforms supported by pyLoad use the vulnerable /web/<path> route. There are no known variant product names beyond the pyLoad main distribution.

Risk and Exploitability

The CVSS score of 5.3 indicates moderate severity. The EPSS score is not available, and the vulnerability is not listed in the CISA KEV catalog. Attack execution requires no special privileges and can be performed over the public network by sending HTTP requests to the vulnerable endpoint. An attacker can simply request a file name that exists or does not exist and observe the 200 or 500 status code to enumerate templates. The information disclosed via the exception typo can be leveraged to understand internal Jinja2 variables, potentially aiding further attacks. Due to the lack of authentication requirement and the clear attack path, exploitation is considered feasible with minimal effort.

Generated by OpenCVE AI on October 9, 2026 at 18:38 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade pyLoad to version 0.5.0b3.dev101 or later, which removes the unauthenticated template route.
  • If upgrading is not possible, configure the web server or reverse proxy to require authentication for the /web/<path> endpoint.
  • As a temporary workaround, edit src/pyload/webui/app/blueprints/app_blueprint.py to add a @login_required decorator to the /web/<path> route or remove the route entirely.

Generated by OpenCVE AI on October 9, 2026 at 18:38 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-j92p-c242-7hfx pyLoad: Unauthenticated access to /web/<path:filename> bypasses authentication on sensitive templates and leaks internal error details via exception attribute typo
History

Fri, 09 Oct 2026 20:00:00 +0000

Type Values Removed Values Added
First Time appeared Pyload
Pyload pyload
Vendors & Products Pyload
Pyload pyload

Fri, 09 Oct 2026 18:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Fri, 09 Oct 2026 17:00:00 +0000

Type Values Removed Values Added
Description pyLoad is a free and open-source download manager written in Python. Prior to 0.5.0b3.dev101, the `/web/<path:filename>` route in `src/pyload/webui/app/blueprints/app_blueprint.py` renders Jinja2 templates without any authentication requirement. Every equivalent direct route (`/logs`, `/settings`, `/queue`, `/dashboard`, etc.) is protected by `@login_required`, but the underlying templates for all of these pages are accessible unauthenticated via this endpoint. Combined with an exception attribute typo in `src/pyload/webui/app/handlers.py` (`exc.desc` instead of `exc.description`), internal Jinja2 variable names are leaked in HTTP 500 response bodies to unauthenticated callers. An attacker can also enumerate all valid template names by observing 200 vs 500 response differentiation. Version 0.5.0b3.dev101 contains a patch.
Title pyLoad: Unauthenticated access to /web/<path:filename> bypasses authentication on sensitive templates and leaks internal error details via exception attribute typo
Weaknesses CWE-209
CWE-306
References
Metrics cvssV3_1

{'score': 5.3, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-09T17:04:31.503Z

Reserved: 2026-08-17T23:49:03.449Z

Link: CVE-2026-75597

cve-icon Vulnrichment

Updated: 2026-10-09T17:04:15.720Z

cve-icon NVD

Status : Deferred

Published: 2026-10-09T17:16:48.550

Modified: 2026-10-09T18:17:14.173

Link: CVE-2026-75597

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-09T19:45:11Z

Weaknesses
  • CWE-209

    Generation of Error Message Containing Sensitive Information

  • CWE-306

    Missing Authentication for Critical Function