IPBUF安全漏洞报告
English
CVE-2026-39891 CVSS 8.8 高危

CVE-2026-39891 PraisonAI模板注入漏洞

披露日期: 2026-04-08

漏洞信息

漏洞编号
CVE-2026-39891
漏洞类型
服务器端模板注入 (SSTI)
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
PraisonAI

相关标签

SSTI远程代码执行PraisonAI模板注入CVE-2026-39891

漏洞概述

PraisonAI是一个多智能体团队系统。在4.5.115版本之前,其create_agent_centric_tools()函数返回的工具(如acp_create_file)在处理文件内容时使用了模板渲染。由于未对来自agent.start()的用户输入进行转义处理,导致输入中的模板表达式被当作代码执行,而非普通文本。攻击者可利用此漏洞在服务器上执行任意代码,造成严重的安全风险。该漏洞已在4.5.115版本中修复。

技术细节

该漏洞的根本原因在于PraisonAI的create_agent_centric_tools()函数中存在输入验证缺失。具体来说,当系统调用acp_create_file等工具处理文件内容时,使用了模板渲染技术来动态生成内容。在受影响版本中,从agent.start()接口接收的用户输入被直接传递给模板引擎,未经过任何转义或过滤处理。这使得攻击者可以构造包含模板语法(如{{7*7}}或Python/Jinja2对象利用链)的恶意输入。当模板引擎解析这些输入时,它会将模板表达式作为代码执行,从而导致服务器端模板注入(SSTI)。由于SSTI通常可以进一步导致远程代码执行(RCE),攻击者可能借此获取服务器权限、读取敏感文件或控制多智能体系统的行为。

攻击链分析

STEP 1
侦察
攻击者识别出目标正在使用PraisonAI版本低于4.5.115。
STEP 2
初始访问
攻击者与PraisonAI的agent.start()接口进行交互,准备发送恶意输入。
STEP 3
执行
攻击者精心构造包含模板语法(如{{...}})的Payload,并通过agent.start()发送。
STEP 4
漏洞利用
未经过滤的输入被传递给create_agent_centric_tools()中的工具(如acp_create_file),模板引擎解析并执行了Payload中的表达式。
STEP 5
影响
攻击者成功利用SSTI漏洞在服务器端执行任意代码,可能获取系统权限或敏感数据。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# Proof of Concept for CVE-2026-39891 # This demonstrates how unescaped input leads to SSTI in PraisonAI < 4.5.115 # Assume we are interacting with the vulnerable agent API endpoint # The vulnerability is triggered when user input reaches 'acp_create_file' # which uses template rendering. malicious_payload = "{{ 7*7 }}" # Basic SSTI test payload # In a real scenario, this input would be sent to the agent.start() method # Example exploit flow: # 1. Attacker sends payload to agent.start() # 2. Input is passed to acp_create_file without escaping # 3. Template engine processes {{ 7*7 }} and returns "49" print(f"Sending payload to trigger template rendering: {malicious_payload}") print("If the application returns '49' instead of the literal string, it is vulnerable.")

影响范围

PraisonAI < 4.5.115

防御指南

临时缓解措施
建议立即将PraisonAI升级至4.5.115或更高版本。在无法立即升级的情况下,应严格限制对agent.start()接口的访问权限,并确保用户输入在传递给文件处理工具之前经过严格的过滤和转义处理,特别是针对模板语法的特殊字符(如{{和}})。

参考链接

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