Skip to content

CVE-2026-123815 pyLoad: Tar extraction creates device nodes and FIFOs (member types not filtered; tarfile extractall without filter=)

CriticalCVSS 9.4
Published
Updated
Exploit status
No public exploit known

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.

Affected products

ProductAffected versionsFixed in
pyload = < 0.5.0b3.dev102 No fix listed
pypi pyload-ng(PyPI) <= 0.5.0b3.dev101 No fix listed
pypi pyload-ng(PyPI) = 0.5.0a5.dev528 No fix listed
pypi pyload-ng(PyPI) = 0.5.0a5.dev532 No fix listed
pypi pyload-ng(PyPI) = 0.5.0a5.dev535 No fix listed
pypi pyload-ng(PyPI) = 0.5.0a5.dev536 No fix listed
pypi pyload-ng(PyPI) = 0.5.0a5.dev537 No fix listed
pypi pyload-ng(PyPI) = 0.5.0a5.dev539 No fix listed
pypi pyload-ng(PyPI) = 0.5.0a5.dev540 No fix listed
pypi pyload-ng(PyPI) = 0.5.0a5.dev545 No fix listed
pypi pyload-ng(PyPI) = 0.5.0a5.dev562 No fix listed
pypi pyload-ng(PyPI) = 0.5.0a5.dev564 No fix listed
pypi pyload-ng(PyPI) = 0.5.0a5.dev565 No fix listed
pypi pyload-ng(PyPI) = 0.5.0a6.dev570 No fix listed
pypi pyload-ng(PyPI) = 0.5.0a6.dev578 No fix listed
pypi pyload-ng(PyPI) = 0.5.0a6.dev587 No fix listed
pypi pyload-ng(PyPI) = 0.5.0a7.dev596 No fix listed
pypi pyload-ng(PyPI) = 0.5.0a8.dev602 No fix listed
pypi pyload-ng(PyPI) = 0.5.0a9.dev615 No fix listed
pypi pyload-ng(PyPI) = 0.5.0a9.dev629 No fix listed
pypi pyload-ng(PyPI) = 0.5.0a9.dev632 No fix listed
pypi pyload-ng(PyPI) = 0.5.0a9.dev641 No fix listed
pypi pyload-ng(PyPI) = 0.5.0a9.dev643 No fix listed
pypi pyload-ng(PyPI) = 0.5.0a9.dev655 No fix listed
pypi pyload-ng(PyPI) = 0.5.0a9.dev806 No fix listed
Show 83 more
pypi pyload-ng(PyPI) = 0.5.0b1.dev1 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b1.dev2 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b1.dev3 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b1.dev4 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b1.dev5 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b2.dev10 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b2.dev11 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b2.dev12 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b2.dev9 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev100 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev101 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev13 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev14 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev17 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev18 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev19 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev20 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev21 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev22 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev24 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev26 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev27 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev28 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev29 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev30 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev31 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev32 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev33 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev34 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev35 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev38 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev39 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev40 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev41 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev42 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev43 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev44 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev45 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev46 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev47 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev48 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev49 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev50 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev51 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev52 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev53 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev54 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev57 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev60 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev62 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev64 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev65 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev66 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev67 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev68 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev69 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev70 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev71 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev72 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev73 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev74 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev75 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev76 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev77 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev78 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev79 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev80 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev81 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev82 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev85 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev87 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev88 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev89 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev90 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev91 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev92 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev93 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev94 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev95 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev96 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev97 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev98 No fix listed
pypi pyload-ng(PyPI) = 0.5.0b3.dev99 No fix listed

References