IPBUF安全漏洞报告
English
CVE-2026-34935 CVSS 9.8 严重

CVE-2026-34935 PraisonAI 任意命令执行漏洞

披露日期: 2026-04-03

漏洞信息

漏洞编号
CVE-2026-34935
漏洞类型
远程代码执行 (RCE)
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
PraisonAI

相关标签

RCEPraisonAI命令注入CVE-2026-34935OS命令执行

漏洞概述

PraisonAI 是一个多代理团队系统。在 4.5.15 至 4.5.69 之前的版本中,其 `--mcp` CLI 参数存在严重安全漏洞。由于该参数未经过滤直接传递给 `shlex.split()` 并最终转发至 `anyio.open_process()`,导致攻击者无需认证即可利用此缺陷执行任意操作系统命令。这可能导致服务器被完全控制,风险极高。官方已在 4.5.69 版本中修复此问题,建议用户立即升级。

技术细节

该漏洞源于 PraisonAI 处理命令行参数时的设计缺陷。在受影响版本中,当程序处理 `--mcp` 参数时,直接将其值传给 Python 的 `shlex.split()` 函数进行分割,随后通过调用链传递给 `anyio.open_process()` 以启动子进程。问题的关键在于整个流程中完全缺乏任何形式的输入验证、白名单检查或数据清洗机制。攻击者可以通过精心构造包含 Shell 元字符(如分号 `;`、管道符 `|` 或命令替换 `$(cmd)`)的 payload,绕过原本的参数解析逻辑,将恶意命令注入到底层操作系统的 Shell 中执行。由于该漏洞无需用户交互即可被远程利用,且 CVSS 评分高达 9.8,攻击者可借此获得服务器权限,造成数据泄露或服务中断,对系统安全构成严重威胁。建议开发者严格校验所有外部输入,避免直接将用户可控数据传递给系统命令执行接口。

攻击链分析

STEP 1
侦察
攻击者识别目标运行的是 PraisonAI 4.5.15 至 4.5.68 之间的版本。
STEP 2
武器化
攻击者构造包含恶意操作系统命令的 payload,利用 Shell 元字符(如 `;` 或 `&&`)拼接命令。
STEP 3
投递
攻击者向目标应用发送请求,或在命令行中触发 `--mcp` 参数,并注入恶意 payload。
STEP 4
利用
应用将 `--mcp` 参数传递给 `shlex.split()` 和 `anyio.open_process()`,由于缺乏验证,恶意命令被系统 Shell 执行。
STEP 5
后果
攻击者成功在服务器上执行任意代码,获取系统控制权,可能导致数据泄露或系统被破坏。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# PoC for CVE-2026-34935 # The application passes the --mcp argument directly to shlex.split() and anyio.open_process(). # By injecting shell metacharacters, we can achieve arbitrary command execution. import subprocess import sys # Simulating the vulnerable CLI call # In a real scenario, this would be executed on the target machine running the vulnerable version. # Example payload: "valid_param; touch /tmp/pwned" # The vulnerability lies in how the input is parsed and executed. # If the app executes: anyio.open_process(shlex.split(user_input)) # and user_input is: "some_arg; malicious_command" payload = "; echo 'CVE-2026-34935 Exploited' > /tmp/poc.txt" vulnerable_command_args = ["praisonai", "--mcp", payload] print(f"[+] Attempting to exploit CVE-2026-34935 with payload: {payload}") print(f"[+] Simulated command: praisonai --mcp '{payload}'") # subprocess.call(vulnerable_command_args) # Uncomment to run locally if vulnerable app exists print("[!] If exploited, a file /tmp/poc.txt would be created on the target.")

影响范围

PraisonAI >= 4.5.15, < 4.5.69

防御指南

临时缓解措施
如果无法立即升级,请严格限制对 PraisonAI CLI 接口的网络访问,仅允许可信的内部 IP 调用。同时,在系统层面监控异常的进程创建行为,特别是由应用用户发起的 Shell 进程,以便及时发现潜在的攻击活动。

参考链接

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