pyLoad — бесплатный менеджер загрузок с открытым исходным кодом, написанный на Python. До версии 0.5.0b3.dev97 функция _safe_extractall() в src/pyload/plugins/extractors/UnTar.py использовала os.path.commonprefix() для проверки обхода пути, которая выполняет сравнение строк на уровне символов, а не сравнение на уровне пути. Это позволяет специально созданному tar-архиву записывать файлы за пределами предполагаемого каталога извлечения.
Правильная функция os.path.commonpath() была добавлена в базу кода в исправлении CVE-2026-32808 (коммит 5f4f0fa), но никогда не применялась к _safe_extractall(), что делает это исправление неполным. Эта уязвимость исправлена в версии 0.5.0b3.dev97.
Показать оригинальное описание (EN)
pyLoad is a free and open-source download manager written in Python. Prior to 0.5.0b3.dev97, the _safe_extractall() function in src/pyload/plugins/extractors/UnTar.py uses os.path.commonprefix() for its path traversal check, which performs character-level string comparison rather than path-level comparison. This allows a specially crafted tar archive to write files outside the intended extraction directory. The correct function os.path.commonpath() was added to the codebase in the CVE-2026-32808 fix (commit 5f4f0fa) but was never applied to _safe_extractall(), making this an incomplete fix. This vulnerability is fixed in 0.5.0b3.dev97.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Pyload-Ng_Project Pyload-Ng
cpe:2.3:a:pyload-ng_project:pyload-ng:*:*:*:*:*:python:*:*
|
— |
<= 0.5.0b3.dev96
|