IPBUF安全漏洞报告
English
CVE-2026-39307 CVSS 8.1 高危

CVE-2026-39307 PraisonAI Zip Slip任意文件写入漏洞

披露日期: 2026-04-07

漏洞信息

漏洞编号
CVE-2026-39307
漏洞类型
任意文件写入
CVSS评分
8.1 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
PraisonAI

相关标签

Zip Slip任意文件写入PraisonAI路径遍历Python

漏洞概述

PraisonAI是一个多智能体团队系统。在1.5.113版本之前,其模板安装功能存在“Zip Slip”任意文件写入漏洞。当应用从外部源(如GitHub)下载并解压模板归档文件时,使用了Python的`zipfile.extractall()`方法,且未验证归档内的文件是否解析到预期提取目录之外。攻击者可利用此漏洞覆盖系统上的任意文件,可能导致远程代码执行。

技术细节

该漏洞属于典型的路径遍历与解压逻辑缺陷(Zip Slip)。其根本原因是PraisonAI在处理用户提供的模板ZIP包时,直接调用了Python的`zipfile.extractall()`函数,而未对压缩包内文件的路径名进行安全过滤(例如检查是否包含`../`或绝对路径)。攻击者可以构造一个特制的ZIP文件,其中包含带有路径遍历序列(如`../../`)的文件名。当受害者(管理员)在PraisonAI界面中安装此恶意模板时,系统会执行解压操作,导致恶意文件被写入到Web根目录、系统配置目录或其他敏感位置。如果覆盖了可执行脚本(如.py文件)或配置文件,攻击者即可在服务器端执行任意代码。

攻击链分析

STEP 1
1
攻击者构造包含恶意路径(如../../evil.py)的特制ZIP文件。
STEP 2
2
攻击者将恶意ZIP文件托管在公开仓库(如GitHub)或诱导用户下载。
STEP 3
3
受害者在PraisonAI管理界面中,从攻击者控制的源安装模板。
STEP 4
4
PraisonAI下载模板并使用`zipfile.extractall()`进行解压。
STEP 5
5
由于未校验路径,恶意文件被写入系统任意目录,导致文件覆盖或代码执行。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import zipfile import os # PoC to generate a malicious zip file for Zip Slip vulnerability # This script creates a zip file containing a file with a path traversal sequence. def create_malicious_zip(filename): with zipfile.ZipFile(filename, 'w') as z: # The file name includes "../" to escape the extraction directory z.writestr("../../malicious_payload.txt", "This is a malicious file written via Zip Slip.") print(f"Created malicious zip file: {filename}") if __name__ == "__main__": create_malicious_zip("exploit_template.zip")

影响范围

PraisonAI < 1.5.113

防御指南

临时缓解措施
建议立即升级到修复版本。在无法立即升级的情况下,应严格禁止从非官方来源下载和安装PraisonAI模板,并检查系统关键目录是否存在被异常修改的文件。

参考链接

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