🔴 【深度分析】严重安全漏洞: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(包含补丁)


漏洞原理分析

攻击链路

  1. 前置条件:攻击者需要拥有一个合法的平台账户(注册或通过其他方式获得),并且是目标工作空间的成员(member 角色)。由于端点仅要求 require_workspace_member,最低权限即可满足。
  2. 利用过程:
    • 攻击者向 POST /workspaces/{workspace_id}/members 发送请求,请求体包含:
      {
        "user_id": "<攻击者控制的第二个账户ID 或 目标受害者账户ID>",
        "role": "owner"
      }
      
    • 由于没有校验调用者的角色,MemberService.add() 直接执行添加操作,将目标用户以 owner 角色加入工作空间。
  3. 攻击的结果:
    • 若添加的是攻击者自己的第二个账户,则攻击者获得该工作空间的完全控制权(查看所有成员数据、修改工作空间配置、删除其他成员等)。
    • 若添加的是其他租户的已有账户(如竞争对手或管理员),攻击者可造成恶意破坏或权限滥用,破坏工作空间的完整性。

技术成因

  • 缺失的权限检查(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() 内部也执行了额外的权限验证。

临时缓解措施

如果无法立即升级,建议采取以下措施:

  1. 限制 API 端点访问:

    • 在网关或反向代理(如 Nginx、API 网关)中,对 POST /workspaces/*/members 路径添加额外身份验证或 IP 白名单。
    • 使用 Web 应用防火墙(WAF)规则拦截请求体中 "role":"owner" 的请求,但注意不能完全替代权限检查,因为攻击者可能使用其他角色值。
  2. 加强监控与告警:

    • 监控日志中针对 /workspaces/{workspace_id}/members 的 POST 请求,尤其是 user_id 与当前工作空间现有成员不相符、或 role 为 owner 的请求。
    • 对异常行为(如低权限用户频繁添加成员)进行告警并临时冻结账户。
  3. 临时禁用端点:

    • 如果业务上允许,暂时关闭该 API 端点,直到完成升级。可通过配置或代码注释实现。
  4. 最小化权限分配:

    • 审查所有现有工作空间,确保除必要管理员外,其他成员均为最低权限角色,减少可被利用的入口。

参考资料


⚠️ 免责声明:本文分析基于 NVD 官方数据与公开信息进行专业推断,不包含未公开的利用细节。请用户及时参考官方补丁进行修复。