🔴 【深度分析】严重安全漏洞:CVE-2026-47393

CVSS 评分: 严重(9.8)🔴  状态: Deferred  发布时间: 2026-07-21


🔍 技术细节速览

字段 值
CVE ID CVE-2026-47393
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-306,CWE-1188
发布时间 2026-07-21
最后更新 2026-07-22
状态 Deferred
数据来源 security-advisories@github.com

⚠️ CVSS 9.8(严重)
向量: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
攻击复杂度低、无需权限、无需交互、可远程利用,且能完全危害机密性、完整性和可用性。


漏洞概述

CVE-2026-47393 是 PraisonAI(一个多智能体系统框架)中存在的一个严重安全缺陷。该漏洞源于其内置的代码生成器 praisonai.deploy.api.generate_api_server_code 生成的 Flask API 服务器默认禁用身份认证。用户若按照官方快速开始文档执行 praisonai deploy --type api 并使用推荐的 YAML 配置(绑定到 0.0.0.0),将启动一个无认证的 API 服务,暴露 /chat 和 /agents 端点,并直接运行 praisonai.run() 处理用户提交的 JSON 输入。攻击者可远程利用该服务执行 LLM 编排操作(利用环境中的 API 密钥等敏感信息),实现完全控制。

该漏洞影响所有 4.6.40 之前版本的 PraisonAI。官方在 4.6.40 版本中修复了该问题,修复方式为将认证改为默认关闭但提供显式启用选项(APIConfig(auth_enabled=True, auth_token=...))。


受影响组件与版本

组件 受影响版本 修复版本
PraisonAI 代码生成器 (praisonai.deploy.api.generate_api_server_code) < 4.6.40 4.6.40

说明:任何通过 praisonai deploy --type api 快速部署的用户,若未手动开启认证,均受影响。


漏洞原理分析

技术成因

该漏洞属于 CWE-306 (Missing Authentication for Critical Function) 与 CWE-1188 (Insecure Defaults) 的组合。

  • 代码生成器设计缺陷:generate_api_server_code 生成的 Flask 应用代码中,auth_enabled 参数默认值为 False。这意味着生成的服务器在启动时不会检查任何认证令牌或会话。
  • 默认绑定行为:官方推荐的示例 YAML 配置指定 host: 0.0.0.0,导致服务监听所有网络接口,方便攻击者远程访问。
  • 关键端点未受保护:/chat 和 /agents 端点直接调用 praisonai.run(),该函数会基于用户提供的 JSON 输入调用底层的 LLM 模型。由于环境变量中通常包含 API 密钥(如 OpenAI、Anthropic 等),攻击者可滥用这些密钥执行任意 LLM 任务,甚至通过 Prompt Injection 获取敏感信息。
  • 身份认证缺失:整个 API 没有要求任何身份凭证(如 token、API key),攻击者无需任何权限即可发送请求。

攻击向量分析

  1. 扫描暴露的 PraisonAI 服务:攻击者可通过 Shodan、Censys 等搜索引擎或直接扫描公网 IP 的常见端口(如 5000、8000)发现绑定到 0.0.0.0 的 Flask 服务。
  2. 发送恶意 JSON 载荷:向 /chat 端点发送包含恶意提示的请求,如要求 LLM 输出环境变量中的 API Key、系统命令等。
  3. 利用 LLM 能力:由于环境中有真实 API Key,攻击者可耗尽配额、调取敏感数据,甚至通过 LLM 的插件/工具调用(如文件读取、网络请求)实现横向移动。

影响评估

利用困难程度

  • 攻击复杂度 (AC:L):无需特殊技巧,仅需发送 HTTP POST 请求。
  • 所需权限 (PR:N):无需任何身份认证或账户。
  • 用户交互 (UI:N):无需受害者点击链接等操作。
  • 攻击路径 (AV:N):远程网络可达。

潜在后果

方面 影响
机密性 (C:H) 攻击者可获取环境变量中的 API 密钥、数据库凭证、内部配置等敏感信息。
完整性 (I:H) 可通过 LLM 函数调用修改文件、执行代码,或篡改系统状态。
可用性 (A:H) 消耗 API 配额或导致服务拒绝服务;极端情况下可删除关键资源。

实际威胁:任何暴露于公网的 PraisonAI 服务(未启用认证)都可能被立即攻陷,完全控制宿主机上的 AI 资源。


修复建议

官方补丁

  • 升级至 4.6.40 或更高版本:该版本修改了代码生成器,要求显式通过 APIConfig(auth_enabled=True, auth_token=...) 开启认证。用户需立即升级并修改部署脚本。

临时缓解措施(无法立即升级时)

  1. 手动启用认证:在生成服务器代码后,编辑生成的 app.py,将 auth_enabled 设为 True 并设置强随机 auth_token。
  2. 限制网络暴露:确保服务仅绑定到 127.0.0.1(localhost),或通过反向代理(如 Nginx)添加 IP 白名单和 HTTP 基本认证。
  3. 删除不必要的端点:若仅需聊天功能,可注释或移除 /agents 等不必要端点。
  4. 监控日志:检查服务器访问日志,识别可疑的未授权请求。

长期最佳实践

  • 始终遵循最小权限原则,避免将 AI 服务直接暴露在公网。
  • 使用 API 网关(如 Kong、AWS API Gateway)强制认证。
  • 定期审计代码生成器生成的默认配置。

参考资料

项目 链接
CVE-2026-47393 官方详情 https://nvd.nist.gov/vuln/detail/CVE-2026-47393
CWE-306 (Missing Authentication) https://cwe.mitre.org/data/definitions/306.html
CWE-1188 (Insecure Defaults) https://cwe.mitre.org/data/definitions/1188.html
PraisonAI GitHub 安全公告 (GHSA-6rmh-7xcm-cpxj) 关联 CVE-2026-44338 (具体链接未提供)
PraisonAI 官方文档 https://docs.praison.ai/

分析结论:CVE-2026-47393 是一个典型的“不安全默认值”引发的严重漏洞,攻击者无需任何权限即可完全控制暴露的 AI API 服务。所有使用版本低于 4.6.40 的用户应立即采取补救措施。