漏洞概述 标题: Provider-returned image URL bypass SSRF protection during image generation 描述: nanobot 在 处理过程中下载 provider 返回的图像 URL,未应用其内置的 SSRF 目标验证。经过身份验证的 API 用户或能够触发图像生成的用户,结合恶意或配置错误的图像提供商,可能导致 nanobot 主机向回环或其他私有网络目标发起 HTTP 请求,并将响应字节持久化为生成的媒体。 影响范围 受影响产品: - 生态系统: pip - 包名: nanobot-ai - 受影响版本: <= 0.2.1 - 修复版本: 未提供 严重性: 高 向量字符串: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:L 弱点: CWE-918: Server-Side Request Forgery (SSRF) 修复方案 修复版本: 未提供 POC 代码 其他关键信息 漏洞细节: - 问题出现在图像生成响应处理路径中。nanobot 支持图像提供商返回内联 base64 图像数据或 中的后续 URL。当返回 URL 时,代码通过 下载它。 - 在最高受影响的上游发布标签 中, 执行直接获取。 - 项目已在 中通过 提供 SSRF 防御,拒绝回环和内部地址如 、 、 和元数据样式链接本地目标。但漏洞路径未调用该验证。 PoC 步骤: 1. 使用标准 API。 2. 代理循环到达 工具。 3. 配置的图像提供商返回攻击者选择的 。 4. nanobot 将该 URL 传递给 。 5. 主机执行请求并将返回的字节存储为生成的图像内容。 验证结果: - 在易受攻击的运行中,伪造的提供商返回 。 - 在控制运行中,提供商返回内联 ;相同的 API 路由和工具路径执行,但没有发生 canary 请求。 影响: - 这是一个服务器端请求伪造问题,影响网络信任边界。 - 恶意或配置错误的图像提供商可以使用 provider 返回的 URL 使 nanobot 实例发送请求到: - 同一主机上的回环服务 - RFC1918 私有网络服务 - 链接本地和元数据相邻目标 证据日志: - 验证运行显示 SSRF 守卫检查失败,观察到 canary 命中。 - 控制运行显示 SSRF 守卫检查成功,没有 canary 命中。 结论 该漏洞允许攻击者通过配置错误的图像提供商绕过 SSRF 保护,导致服务器端请求伪造。建议尽快升级到修复版本或采取其他安全措施以防止此类攻击。