IPBUF安全漏洞报告
English
CVE-2026-35592 CVSS 5.3 中危

CVE-2026-35592 pyLoad路径遍历漏洞

披露日期: 2026-04-07

漏洞信息

漏洞编号
CVE-2026-35592
漏洞类型
路径遍历
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
pyLoad

相关标签

路径遍历pyLoad文件解压逻辑漏洞

漏洞概述

pyLoad在0.5.0b3.dev97版本之前的UnTar.py文件中存在路径遍历漏洞。该漏洞使用了`os.path.commonprefix`进行路径检查,由于其仅进行字符级比较,无法有效防御路径穿越。攻击者可利用特制的tar归档文件,将文件写入预期目录之外。这是对之前修复补丁应用不完整导致的漏洞。

技术细节

该漏洞位于pyLoad的`src/pyload/plugins/extractors/UnTar.py`文件中,具体涉及`_safe_extractall`函数的实现逻辑。该函数原本用于在解压tar包时防止路径遍历攻击,其机制是检查解压后的文件路径是否以目标目录为前缀。然而,代码错误地使用了`os.path.commonprefix()`函数。该函数仅执行字符级别的字符串比较,而非语义上的路径比较。这意味着攻击者可以构造特殊的文件名(例如利用`../`序列或构造特定的路径字符串),使得恶意文件名在字符前缀上匹配目标目录,但在实际路径解析后指向目标目录之外。尽管代码库中已有针对类似问题的修复函数`os.path.commonpath()`(来自CVE-2026-32808的修复),但该函数未被应用到`_safe_extractall`中,导致补丁遗漏。攻击者利用此漏洞可诱导管理员或用户解压特制的恶意tar文件,从而在服务器上写入任意文件,可能导致系统被控制或敏感数据被覆盖。

攻击链分析

STEP 1
步骤1
攻击者制作包含路径遍历字符(如`../`)的恶意tar压缩包。
STEP 2
步骤2
攻击者诱导受害者下载并使用pyLoad解压该压缩包。
STEP 3
步骤3
pyLoad的`_safe_extractall`函数使用`os.path.commonprefix`检查,误判路径安全。
STEP 4
步骤4
恶意文件被写入到解压目标目录之外的系统任意位置。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import tarfile import os # Create a malicious tar file to demonstrate the vulnerability # The file contains a path that attempts to traverse outside the extraction directory with tarfile.open("malicious.tar", "w") as tar: # Adding a file with a path traversal sequence (../) # If pyLoad uses os.path.commonprefix, this might bypass checks info = tarfile.TarInfo(name="../../exploit.txt") info.size = 0 tar.addfile(info) print("Malicious tar file created: malicious.tar")

影响范围

pyLoad < 0.5.0b3.dev97

防御指南

临时缓解措施
建议用户不要解压来源不明的tar文件,或在沙箱环境中进行解压操作。同时,管理员应检查系统文件完整性,以防止可能已被写入的后门文件。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表