Description
pyLoad is a free and open-source download manager written in Python. Prior to 0.5.0b3.dev102, UnTar._safe_extractall in src/pyload/plugins/extractors/UnTar.py validates archive member paths and link targets but does not call TarInfo.isdev to reject special tar member types before calling tarfile.extractall. On supported Python 3.9 through 3.13 runtimes, tarfile defaults to the fully_trusted extraction filter, so a user with ADD and STATUS permissions can cause extraction of a crafted archive containing character devices, block devices, or FIFOs. Python 3.14 defaults to a safe extraction filter. When pyLoad runs with operating-system privileges that permit device creation, including the official root-based Docker deployment, the archive can expose raw devices and compromise the host. Non-root deployments can still create FIFOs that cause hangs or IPC confusion. This issue is fixed in version 0.5.0b3.dev102.
Published: 2026-11-09
Score: 9.4 Critical
EPSS: n/a
KEV: No
Impact: Privilege Escalation and Host Compromise
Action: Immediate Patch
AI Analysis

Impact

pyLoad, a Python‑based download manager, fails to filter special tar member types before delegating extraction to the standard library. A crafted tar archive that contains character devices, block devices, or FIFOs can be uploaded by any user with ADD or STATUS permissions. When pyLoad performs the extraction, the underlying tarfile module (on Python 3.9‑3.13) uses a fully trusted filter that allows creation of such device nodes, leading to the host operating system creating device files or FIFO objects according to the archive contents.

Affected Systems

The flaw exists in all pyLoad releases prior to version 0.5.0b3.dev102. Users running pyLoad under a privileged account—such as the root‑based official Docker deployment—or any environment that permits device creation are exposed to raw device access. Even unprivileged deployments can create FIFOs, which may cause service hangs or inter‑process communication confusion.

Risk and Exploitability

The CVSS score of 9.4 underscores the severity, while the EPSS score is not yet available and the vulnerability is not listed in the CISA KEV catalog. Attackers need only craft a malicious tar file and trigger the extraction through the normal upload workflow; no network exposure is required. If the execution environment allows device creation, an attacker can expose physical devices or mount points, enabling remote code execution or data exfiltration. Lack of mitigation on non‑root users still poses a denial‑of‑service risk. The combination of a high severity score and the local nature of the exploit makes the risk significant for installations running pyLoad with elevated privileges or with insufficient user control over uploads.

Generated by OpenCVE AI on November 9, 2026 at 22:36 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade pyLoad to version 0.5.0b3.dev102 or later to gain the fixed tar extraction filter.
  • If an upgrade is not possible, restrict the upload of tar archives to administrators only or disable the upload feature for untrusted users.
  • Run the pyLoad process under a non‑privileged user account—such as a dedicated low‑privilege Docker container—to prevent it from creating device nodes even if a crafted archive is extracted.

Generated by OpenCVE AI on November 9, 2026 at 22:36 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-fr26-jjhm-638c pyLoad: Tar extraction creates device nodes and FIFOs (member types not filtered; tarfile extractall without filter=)
History

Mon, 09 Nov 2026 22:45:00 +0000

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

Mon, 09 Nov 2026 21:30: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.dev102, UnTar._safe_extractall in src/pyload/plugins/extractors/UnTar.py validates archive member paths and link targets but does not call TarInfo.isdev to reject special tar member types before calling tarfile.extractall. On supported Python 3.9 through 3.13 runtimes, tarfile defaults to the fully_trusted extraction filter, so a user with ADD and STATUS permissions can cause extraction of a crafted archive containing character devices, block devices, or FIFOs. Python 3.14 defaults to a safe extraction filter. When pyLoad runs with operating-system privileges that permit device creation, including the official root-based Docker deployment, the archive can expose raw devices and compromise the host. Non-root deployments can still create FIFOs that cause hangs or IPC confusion. This issue is fixed in version 0.5.0b3.dev102.
Title pyLoad: Tar extraction creates device nodes and FIFOs (member types not filtered; tarfile extractall without filter=)
Weaknesses CWE-22
CWE-434
References
Metrics cvssV4_0

{'score': 9.4, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-11-09T21:13:15.779Z

Reserved: 2026-11-06T15:27:56.227Z

Link: CVE-2026-123815

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-11-09T22:30:17Z

Weaknesses
  • CWE-22

    Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

  • CWE-434

    Unrestricted Upload of File with Dangerous Type