🔴 严重 | CVE-2026-47391 — PraisonAI is a multi-agent teams system. Prior to ...
🔴 《严重安全漏洞:CVE-2026-47391》
CVSS 评分: 严重(9.8) 状态: Received 发布时间: 2026-07-21
漏洞简介
CVE-2026-47391 涉及 PraisonAI 项目中的一个严重安全漏洞。PraisonAI 是一个多智能体团队系统(multi-agent teams system)。在版本 4.6.40 之前,PraisonAI 官方提供的 A2A(Agent-to-Agent)服务器示例存在以下问题:
- 未授权访问(CWE-306):该示例暴露了一个无需身份验证的 A2A JSON-RPC 端点(endpoint)。
- 危险函数调用(CWE-95):该示例注册了一个名为
calculate(expression)的工具(tool),其实现使用了 Python 的eval()函数对用户提供的表达式进行动态求值。 - 网络绑定不当:该示例默认绑定到
0.0.0.0,意味着所有网络接口均可访问。
攻击流程如下:
- 远程未授权攻击者可以向
/a2a端点发送message/send请求。 - 该请求会触发
agent.chat()方法,进而调用一个真实的大语言模型(LLM,如gemini/gemini-2.5-flash-lite)。 - 攻击者可以通过精心构造的请求,诱导 LLM 调用已注册的
calculate工具。 - 由于
calculate工具内部使用eval()执行表达式,攻击者可以实现 任意 Python 代码执行(arbitrary Python execution)。
在测试中,使用 gemini/gemini-2.5-flash-lite 模型,通过一个未认证的 HTTP 请求成功创建了标记文件(marker file),证实了远程代码执行的可能性。
此外,默认的未认证 A2A 接口还暴露了 任务历史(task history) 和 任务取消(task cancellation) 的 API,进一步增加了机密性和完整性的影响。
影响范围
- 受影响版本:PraisonAI 版本 低于 4.6.40。
- 受影响组件:官方提供的 A2A 服务器示例,以及任何类似的不安全公开 A2A 部署(使用了不安全工具)。
- 修复版本:版本 4.6.40 已修复该问题。
风险分析
- 攻击向量:远程网络攻击(AV:N),攻击复杂度低(AC:L),无需权限(PR:N),无需用户交互(UI:N)。
- 影响范围:机密性(C:H)、完整性(I:H)、可用性(A:H)均为高影响。
- CVSS 评分:9.8(严重)(CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)。
- 可能的攻击后果:
- 攻击者可以在服务器上执行任意 Python 代码,可能导致:
- 完全控制服务器(远程代码执行,RCE)。
- 窃取敏感数据(如数据库凭证、API 密钥、用户数据)。
- 篡改或删除数据。
- 利用服务器作为跳板进行横向移动或发起进一步攻击。
- 通过暴露的任务历史 API,攻击者可以获取历史对话记录,泄露敏感信息。
- 通过任务取消 API,攻击者可以中断正在进行的任务,影响系统可用性。
- 攻击者可以在服务器上执行任意 Python 代码,可能导致:
总结:该漏洞允许未经身份验证的远程攻击者通过 LLM 调用 eval() 实现任意代码执行,风险极高。建议所有使用 PraisonAI 且部署了 A2A 示例的用户立即升级到 4.6.40 或更高版本,并避免在公开网络中暴露未认证的 A2A 端点。
🔍 技术细节
| 字段 | 值 |
|---|---|
| CVE ID | CVE-2026-47391 |
| CVSS 评分 | 9.8 🔴 |
| 严重程度 | 严重 |
| CVSS 向量 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CWE 分类 | CWE-95,CWE-306 |
| 发布时间 | 2026-07-21 |
| 最后更新 | 2026-07-21 |
| 状态 | Received |
| 数据来源 | security-advisories@github.com |
🔗 参考链接
💬 评论