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

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

披露日期: 2026-04-08

漏洞信息

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

相关标签

远程代码执行RCEPraisonAIYAML反序列化js-yaml0day

漏洞概述

PraisonAI 4.5.115 之前版本存在严重的远程代码执行漏洞。漏洞根源在于 `AgentService.loadAgentFromFile` 方法使用了 `js-yaml` 库解析 YAML 文件,却未禁用 `!!js/function` 等危险标签。攻击者可构造包含恶意 JavaScript 代码的 YAML 文件,并通过 API 端点上传。一旦文件被服务器解析,即可触发任意代码执行,导致服务器被完全控制。

技术细节

该漏洞属于典型的不安全反序列化漏洞。PraisonAI 使用 `js-yaml` 库处理用户上传的智能体定义文件,但在 `AgentService.loadAgentFromFile` 方法中未设置安全选项(如 `schema: FAILSAFE_SCHEMA`),导致解析器默认支持执行 JavaScript 代码的标签。攻击者可以利用 `!!js/function` 标签在 YAML 文件中定义一个函数对象,该对象在被解析时会自动执行。由于 CVSS 向量显示无需认证(PR:N)且无需用户交互(UI:N),攻击者可直接向受影响端点发送恶意文件请求。服务器端进程在解析该文件时,会实例化并执行攻击者定义的 JavaScript 函数,从而在系统上下文中执行任意命令,造成数据泄露、篡改或服务中断。此漏洞利用门槛低,危害极大,攻击者借此可轻易获取服务器最高权限,建议立即修复。

攻击链分析

STEP 1
步骤1:侦察
攻击者识别出目标 PraisonAI 系统存在易受攻击的 API 端点,该端点接受 YAML 格式的智能体定义文件上传。
STEP 2
步骤2:构造载荷
攻击者编写一个恶意的 YAML 文件,利用 `js-yaml` 库的 `!!js/function` 标签封装恶意 JavaScript 代码(如反弹 Shell 或系统命令执行)。
STEP 3
步骤3:上传恶意文件
攻击者无需认证,直接通过 API 接口将包含恶意载荷的 YAML 文件上传至服务器的 `AgentService.loadAgentFromFile` 接口。
STEP 4
步骤4:解析与执行
服务器端 `AgentService` 使用不安全的配置调用 `js-yaml` 解析上传的文件,触发 `!!js/function` 标签,实例化并执行其中的 JavaScript 函数。
STEP 5
步骤5:建立控制
恶意代码在服务器上下文中运行,攻击者获得远程代码执行权限,可进一步窃取数据、安装后门或横向移动。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# Malicious YAML payload for CVE-2026-39890 # This payload uses !!js/function to execute arbitrary code on the server !!js/function > function (obj) { // PoC: Execute a simple command (e.g., creating a file or reverse shell) var require = process.mainModule.require; var child_process = require('child_process'); // Example: Execute 'id' command // In a real attack, this would be a reverse shell payload child_process.exec('id', function (error, stdout, stderr) { console.log('Output: ' + stdout); }); return "Pwned by CVE-2026-39890"; }

影响范围

PraisonAI < 4.5.115

防御指南

临时缓解措施
建议立即升级至修复版本。若无法立即升级,应严格限制对上传 API 的网络访问(如通过 IP 白名单),并部署 Web 应用防火墙(WAF)规则,检测并拦截包含 `!!js/function` 或其他 JavaScript 执行标签的 YAML 文件内容。

参考链接

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