pyLoad CNL Blueprint is vulnerable to Path Traversal through `dlc_path` leading to Remote Code Execution (RCE)
Description
pyLoad is the free and open-source Download Manager written in pure Python. In versions 0.5.0b3.dev89 and below, there is an opportunity for path traversal in pyLoad-ng CNL Blueprint via package parameter, allowing Arbitrary File Write which leads to Remote Code Execution (RCE). The addcrypted endpoint in pyload-ng suffers from an unsafe path construction vulnerability, allowing unauthenticated attackers to write arbitrary files outside the designated storage directory. This can be abused to overwrite critical system files, including cron jobs and systemd services, leading to privilege escalation and remote code execution as root. This issue is fixed in version 0.5.0b3.dev90.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
pyload-ngPyPI | < 0.5.0b3.dev90 | 0.5.0b3.dev90 |
Affected products
1Patches
170a44fe02c03Fix uncontrolled data used in path expression (#4596)
1 file changed · +6 −3
src/pyload/webui/app/blueprints/cnl_blueprint.py+6 −3 modified@@ -86,9 +86,12 @@ def addcrypted(): "package", flask.request.form.get("source", flask.request.form.get("referer")) ) dl_path = api.get_config_value("general", "storage_folder") - dlc_path = os.path.join( - dl_path, package.replace("/", "").replace("\\", "").replace(":", "") + ".dlc" - ) + dlc_filename = package.replace("/", "").replace("\\", "").replace(":", "") + ".dlc" + dlc_path = os.path.join(dl_path, dlc_filename) + dlc_path = os.path.normpath(dlc_path) + # Ensure dlc_path is within dl_path + if not os.path.abspath(dlc_path).startswith(os.path.abspath(dl_path) + os.sep): + return "failed: invalid package name\r\n", 400 dlc = flask.request.form["crypted"].replace(" ", "+") with open(dlc_path, mode="wb") as fp: fp.write(dlc)
Vulnerability mechanics
Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
5- github.com/advisories/GHSA-48rp-jc79-2264ghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2025-54802ghsaADVISORY
- github.com/pyload/pyload/commit/70a44fe02c03bce92337b5d370d2a45caa4de3d4ghsax_refsource_MISCWEB
- github.com/pyload/pyload/pull/4596ghsax_refsource_MISCWEB
- github.com/pyload/pyload/security/advisories/GHSA-48rp-jc79-2264ghsax_refsource_CONFIRMWEB
News mentions
0No linked articles in our index yet.