🔴 严重 | CVE-2026-47413 — PraisonAI Platform is the platform layer for the P...
🔴 【深度分析】严重安全漏洞:CVE-2026-47413
CVSS 评分: 严重(9.6)🔴 状态: Deferred 发布时间: 2026-07-21
🔍 技术细节速览
| 字段 | 值 |
|---|---|
| CVE ID | CVE-2026-47413 |
| CVSS 评分 | 9.6 🔴 |
| 严重程度 | 严重 |
| CVSS 向量 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N |
| CWE 分类 | CWE-269,CWE-862 |
| 发布时间 | 2026-07-21 |
| 最后更新 | 2026-07-22 |
| 状态 | Deferred |
| 数据来源 | security-advisories@github.com |
📌 CVSS 评分:9.6(严重)
📌 危害等级:严重(Critical)
📌 攻击向量:网络远程(AV:N)
📌 攻击复杂度:低(AC:L)
📌 所需权限:低(PR:L)
📌 用户交互:无(UI:N)
📌 影响范围:影响其他组件/系统(S:C)
📌 机密性影响:高(C:H)
📌 完整性影响:高(I:H)
📌 可用性影响:无(A:N)
漏洞概述
CVE-2026-47413 是 PraisonAI Platform(多智能体团队系统的平台层)中存在的一个严重权限提升与跨租户成员注入漏洞。该漏洞允许拥有最低工作空间权限(例如普通成员) 的攻击者,通过构造恶意的 API 请求,将任意用户(包括攻击者控制的第二个账户、甚至其他租户的账户)提升为工作空间所有者。由于所有者的权限可完全控制该工作空间内的数据与操作,攻击者可借此窃取敏感信息、篡改配置或进一步横向移动。该漏洞影响 PraisonAI Platform 0.1.4 之前的所有版本。
漏洞的根源在于 POST /workspaces/{workspace_id}/members 端点缺乏调用者权限验证,仅依赖一个默认最小角色的成员检查(require_workspace_member(workspace_id)),该检查仅判断请求者是否为工作空间成员,并未验证其角色是否具备“添加/修改成员”的权限。随后,请求体中的 user_id 和 role 被直接传递给 MemberService.add(),而该服务函数也没有对调用者的角色进行二次校验。这一连串的权限缺失使得低权限用户能够以任意角色(包括 owner)添加任意用户到工作空间中。
受影响组件与版本
| 组件 | 受影响版本 |
|---|---|
| PraisonAI Platform(平台层) | < 0.1.4 |
可能包含相关的 API 端点 POST /workspaces/{workspace_id}/members |
所有低于 0.1.4 的版本 |
修复版本:0.1.4(包含补丁)
漏洞原理分析
攻击链路
- 前置条件:攻击者需要拥有一个合法的平台账户(注册或通过其他方式获得),并且是目标工作空间的成员(
member角色)。由于端点仅要求require_workspace_member,最低权限即可满足。 - 利用过程:
- 攻击者向
POST /workspaces/{workspace_id}/members发送请求,请求体包含:{ "user_id": "<攻击者控制的第二个账户ID 或 目标受害者账户ID>", "role": "owner" } - 由于没有校验调用者的角色,
MemberService.add()直接执行添加操作,将目标用户以owner角色加入工作空间。
- 攻击者向
- 攻击的结果:
- 若添加的是攻击者自己的第二个账户,则攻击者获得该工作空间的完全控制权(查看所有成员数据、修改工作空间配置、删除其他成员等)。
- 若添加的是其他租户的已有账户(如竞争对手或管理员),攻击者可造成恶意破坏或权限滥用,破坏工作空间的完整性。
技术成因
- 缺失的权限检查(CWE-862: Missing Authorization):
端点应有的逻辑应该是:只有工作空间的管理员或所有者才能执行添加成员操作。但当前实现仅检查请求者是否为成员,并未检查其角色是否具备add_member权限。 - 不安全的直接输入使用(CWE-269: Improper Privilege Management):
user_id和role由请求体直接传入服务层,未经过任何授权验证或角色范围限制。MemberService.add()信任调用方已经完成了权限校验,但实际调用方(API 端点)没有执行该项校验。
攻击向量
- 网络可达性(AV:N):API 端点通过 HTTP 暴露,攻击者可从远程发起请求。
- 低攻击复杂度(AC:L):无需特殊工具或复杂步骤,仅需一个普通成员凭据和简单的 HTTP 请求。
- 无需用户交互(UI:N):不需要受害者点击链接或执行其他操作。
影响评估
| 评估维度 | 说明 |
|---|---|
| 攻击复杂度 | 低 – 仅需知道工作空间 ID 和拥有一个低权限账户 |
| 所需权限 | 低 – 工作空间普通成员即可触发 |
| 利用条件 | 攻击者必须为平台注册用户;目标工作空间存在;API 端点可访问 |
| 潜在后果 | - 权限提升:低权限成员 → 工作空间所有者 - 横向移动:可添加攻击者控制的跨租户账户,导致租户隔离失效 - 数据泄露:所有者可访问工作空间所有敏感数据(C:H) - 完整性破坏:可修改工作空间配置、删除成员、注入恶意数据(I:H) - 可用性:不直接影响(A:N) |
| 影响范围 | 影响其他组件 – 因为攻击者可向工作空间添加属于不同租户的用户,可能打破多租户隔离边界,影响其他工作空间甚至整个平台 |
综合风险:由于利用门槛极低且后果严重(完全控制工作空间),该漏洞被评为严重级别,符合 CVSS 9.6 的评分。
修复建议
官方补丁版本
- 立即升级至 PraisonAI Platform 0.1.4 或更高版本。该版本在
POST /workspaces/{workspace_id}/members端点中增加了调用者角色权限检查,确保只有工作空间的管理员/所有者才能添加 / 修改成员,同时MemberService.add()内部也执行了额外的权限验证。
临时缓解措施
如果无法立即升级,建议采取以下措施:
限制 API 端点访问:
- 在网关或反向代理(如 Nginx、API 网关)中,对
POST /workspaces/*/members路径添加额外身份验证或 IP 白名单。 - 使用 Web 应用防火墙(WAF)规则拦截请求体中
"role":"owner"的请求,但注意不能完全替代权限检查,因为攻击者可能使用其他角色值。
- 在网关或反向代理(如 Nginx、API 网关)中,对
加强监控与告警:
- 监控日志中针对
/workspaces/{workspace_id}/members的POST请求,尤其是user_id与当前工作空间现有成员不相符、或role为owner的请求。 - 对异常行为(如低权限用户频繁添加成员)进行告警并临时冻结账户。
- 监控日志中针对
临时禁用端点:
- 如果业务上允许,暂时关闭该 API 端点,直到完成升级。可通过配置或代码注释实现。
最小化权限分配:
- 审查所有现有工作空间,确保除必要管理员外,其他成员均为最低权限角色,减少可被利用的入口。
参考资料
- CVE 详情:NVD - CVE-2026-47413
- CWE 分类:
- GitHub 安全公告:security-advisories@github.com(待公开)
- 修复版本发布说明:PraisonAI Platform 0.1.4 Release Notes(建议追踪官方仓库)
⚠️ 免责声明:本文分析基于 NVD 官方数据与公开信息进行专业推断,不包含未公开的利用细节。请用户及时参考官方补丁进行修复。