🔴 严重 | CVE-2026-47407 — PraisonAI Platform is the platform layer for the P...
🔴 【深度分析】严重安全漏洞:CVE-2026-47407
CVSS 评分: 严重(9.4)🔴 状态: Deferred 发布时间: 2026-07-21
🔍 技术细节速览
| 字段 | 值 |
|---|---|
| CVE ID | CVE-2026-47407 |
| CVSS 评分 | 9.4 🔴 |
| 严重程度 | 严重 |
| CVSS 向量 | CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
| CWE 分类 | CWE-269,CWE-639,CWE-863 |
| 发布时间 | 2026-07-21 |
| 最后更新 | 2026-07-22 |
| 状态 | Deferred |
| 数据来源 | security-advisories@github.com |
# CVE-2026-47407:PraisonAI Platform 多个严重访问控制缺陷导致完全接管
| 严重等级 | CVSS 评分 | 向量 |
|---------|-----------|------|
| **CRITICAL** | **9.4** | CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H |
## 漏洞概述
CVE-2026-47407 影响 PraisonAI Platform(多智能体团队系统的平台层)。该漏洞组合了**不安全的直接对象引用(IDOR)**、**不充分的权限检查**和**默认开放注册配置**,使得任意攻击者能够以极低的成本实现跨租户资源访问、权限提升乃至完全控制整个平台。攻击者可远程、无交互地发起攻击,对机密性、完整性和可用性均造成严重危害(CVSS v4.0 基础评分 9.4)。
## 受影响组件与版本
- **受影响产品**:PraisonAI Platform
- **受影响版本**:< 0.1.4
- **修复版本**:0.1.4
组件包含:
- `/api/v1/workspaces/{workspace_id}/...` 下的资源管理端点(agent、issue、project、label、comment、dependency)
- 成员管理端点(add_member、update_member_role、remove_member、update_workspace、delete_workspace)
- 注册端点 `/api/v1/auth/register`
## 漏洞原理分析
### 漏洞一:跨工作区 IDOR(CWE-639,CWE-863)
平台采用 FastAPI 依赖注入 `require_workspace_member(workspace_id)` 来校验请求路径中的 `workspace_id`,但该依赖**仅验证调用者是否属于该工作区的成员**。后续路由处理程序在查询内部资源(如 `agent_id`、`issue_id` 等)时,**仅通过主键 ID 查询,未将资源的实际属主(workspace_id)与 URL 中的 workspace_id 进行比对**。
攻击者只需将自己所在的工作区 ID 放在 URL 前缀中(例如 `workspaces/123`),而在路径中指定其他任意工作区的资源 ID(例如 `agents/456`),依赖检查会因攻击者属于 `123` 工作区而通过,随后服务器却返回了属于其他工作区的 `agent/456` 资源。这使得攻击者可以**读取、修改甚至删除**不属于自己租户的数据。
### 漏洞二:成员管理权限缺失(CWE-269)
在成员管理路由(如 `add_member`、`update_member_role` 等)中,各端点继承默认的 `min_role="member"` 权限限制。但代码**并未在逻辑中强制执行角色层次**,导致任意基础成员(member)可以:
- 将自身角色提升为 `admin` 或 `owner`
- 降低或移除其他成员
- 删除整个工作区
尽管数据库 schema 中定义了角色等级,但服务端未实施任何约束。
### 漏洞三:开放注册与默认绑定
- 注册端点 `/api/v1/auth/register` 在默认配置下**无需邮箱验证**,任何人都可直接注册。
- 默认启动方式 `python -m praisonai_platform` 绑定到 `0.0.0.0:8000`,这意味着**任何能够访问该 IP:Port 的网络位置(内网或公网)都可以发起注册请求**。
攻击者只需一条 curl 命令即可注册账号、创建一个自己的工作区,然后利用漏洞一和漏洞二实现跨租户横向移动和权限提升,最终完全控制平台。
## 影响评估
| 攻击向量 | 复杂度 | 所需权限 | 用户交互 | 影响 |
|---------|--------|---------|---------|------|
| **网络 (AV:N)** | **低 (AC:L)** | **低 (PR:L)** – 仅需注册 | **无 (UI:N)** | 机密性/完整性/可用性均高 |
- **攻击复杂度**:极低,因为利用流程高度自动化,无需绕过任何安全机制。
- **利用条件**:攻击者可在未认证的网络位置完成注册,并获得低权限成员身份;随后利用 IDOR 遍历任意工作区资源,并通过权限提升获取管理员权限。
- **潜在后果**:
- 读取所有工作区的敏感数据(智能体配置、项目文件、对话历史等)
- 篡改或删除关键资源(如 AI 代理配置、项目依赖)
- 删除整个工作区或提升自身为所有者,导致平台完全沦陷
- **CVSS 向量解读**:`VC:H/VI:H/VA:H` 表明对原始系统的机密性、完整性、可用性皆为高损失;`SC:H/SI:H/SA:H` 表示对受保护的安全域(如多租户隔离)同样造成高影响。
## 修复建议
### 官方修复
升级至 **PraisonAI Platform 0.1.4** 或更高版本。该版本已实施以下修复:
- 资源查询时强制验证 `workspace_id` 与资源属主一致(修复 IDOR)
- 在成员管理路由中添加明确的角色检查,仅允许具有足够权限的用户执行敏感操作
- 建议开启邮箱验证或引入邀请机制以限制注册
### 临时缓解措施(若无法立即升级)
1. **网络隔离**:将服务绑定至非公开地址(如 `127.0.0.1`),或使用防火墙限制访问来源 IP。
2. **反向代理认证**:在服务前部署 Nginx/Apache 并强制要求额外的 HTTP 认证(如 Basic Auth 或 OAuth2),阻断未授权注册。
3. **手动禁用注册端点**:若代码可控,可临时注释或删除 `/api/v1/auth/register` 路由。
4. **审计现有工作区**:检查是否有未授权的成员或异常角色提升,并清理可疑账号。
## 参考资料
- **CVE 详情**:https://nvd.nist.gov/vuln/detail/CVE-2026-47407
- **CWE 分类**:
- [CWE-269: Improper Privilege Management](https://cwe.mitre.org/data/definitions/269.html)
- [CWE-639: Authorization Bypass Through User-Controlled Key](https://cwe.mitre.org/data/definitions/639.html)
- [CWE-863: Incorrect Authorization](https://cwe.mitre.org/data/definitions/863.html)
- **安全公告**:由 GitHub Security Advisories 发布(来源:security-advisories@github.com),暂未公开完整公告链接
- **修复版本发布页**:参见 PraisonAI 官方仓库的 release notes(版本 0.1.4)
---
*本文基于 NVD 公开数据生成,技术细节严格遵循已知信息。若需进一步分析,建议结合官方补丁进行代码审计。*
💬 评论