CVE-2026-35592pyLoad在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文件,从而在服务器上写入任意文件,可能导致系统被控制或敏感数据被覆盖。