CVE-2026-35615PraisonAI 在 1.5.113 之前的版本中存在严重的路径遍历漏洞。漏洞源于路径验证函数 `_validate_path()` 的逻辑缺陷,该函数先调用 `os.path.normpath()` 对路径进行标准化处理,折叠了 `..` 序列,随后才检查路径中是否包含 `..`。由于检查操作滞后,导致安全校验完全失效。攻击者可利用此缺陷无需身份验证即可绕过限制,读取服务器上的任意文件,造成高机密性风险。
该漏洞的根本原因是代码逻辑顺序错误,属于典型的安全校验绕过问题。在受影响的 PraisonAI 版本中,负责文件路径验证的 `_validate_path()` 函数存在严重的实现缺陷。该函数首先调用了 Python 标准库的 `os.path.normpath()` 方法对用户输入的路径字符串进行标准化处理。`os.path.normpath()` 的作用是解析并消除路径中的冗余部分,例如将 `../../etc/passwd` 解析为绝对路径 `/etc/passwd`,因此其中的 `..` 序列会被移除。
随后,代码试图在标准化后的路径字符串中查找 `..` 子串,以此作为判断是否存在路径遍历攻击的依据。然而,由于检查操作是在标准化之后进行的,此时路径中已经不存在 `..` 字符,导致安全检查永远通过。这种“先清洗、后检查”的逻辑完全违背了安全原则。攻击者无需任何身份认证,只需发送包含多层 `../` 的恶意请求,即可轻易绕过验证,直接访问并读取服务器文件系统中的任意敏感文件,严重威胁系统机密性。