漏洞概述 标题: Server-Side Request Forgery (SSRF) and Cloudflare API Token Leakage via Path Traversal in Artifacts Endpoint 描述: 漏洞类型: SSRF 和 Cloudflare API Token 泄露 受影响组件: NextChat Next.js API 端点 漏洞原理: 应用程序未对用户输入的 查询参数进行验证,直接将其拼接到后端 Cloudflare KV API 的 URL 中。攻击者可以通过路径遍历(如 )绕过 KV 命名空间的限制,访问 Cloudflare API 的任意端点。由于服务器会自动附加高权限的 令牌,攻击者可以利用此漏洞窃取敏感信息。 影响范围 受影响产品: - 生态系统: npm - 包名: nextchat (Yidadaa/ChatGPT-Next-Web) - 受影响版本: <= v2.16.1 - 已修复版本: 未指定 严重程度: Critical CVSS 向量字符串: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H 修复方案 修复状态: 已修复 具体修复措施: 未详细说明,但建议对 参数进行严格的验证和过滤,防止路径遍历攻击。 POC 代码 1. Docker Compose 配置 2. 启动测试环境 3. Python POC 脚本 4. 运行 POC 5. 使用 curl 直接测试 证据日志 影响 关键 SSRF 和身份接管: 攻击者可以直接调用高权限的 Cloudflare API 端点,使用 NextChat 管理员配置的 。根据令牌的权限范围,这可能导致受害者 Cloudflare 基础设施的全面接管、DNS 设置的操纵、其他命名空间的读取或绕过代理保护。 弱点 CWE-918: Server-Side Request Forgery (SSRF) CWE-22: Improper Limitation of a Pathname to a Restricted Directory (Path Traversal) 发生情况 链接: https://github.com/Yidadaa/ChatGPT-Next-Web/blob/main/app/api/artifacts/route.ts 描述: 端点直接将 查询参数插值到 URL 中,未对路径遍历序列(如 )进行中和,同时附加了高权限的 Bearer 令牌。