漏洞概述 标题: 通过 端点的存储型跨站脚本(Stored XSS)漏洞 — Content-Type 净化绕过 描述: 端点在 中用于提供用户上传的文件,并使用自动检测的 通过 返回,没有进行任何 MIME 类型净化。攻击者可以上传包含嵌入式 JavaScript 的 或 文件,当其他用户导航到该文件 URL 时,浏览器会渲染并执行脚本,从而在 ComfyUI 上下文中执行。这使攻击者能够访问受害者的 (存储工作流、设置和会话数据),并代表受害者对 ComfyUI 后端进行任意 API 调用。 详细信息: 端点在 中之前已针对此问题进行了修补(在提交 (#6034) 和 (#8384) 中),但修复从未应用于 端点。 处理程序在 的第 333-339 行直接返回 。 的 使用 内部设置基于文件扩展名的 头。这意味着: - 文件作为 提供 - 文件作为 提供 这两种内容类型都允许在浏览器中执行 JavaScript。 同时, 端点在 (第 565-570 行)明确阻止了这些危险的 MIME 类型: 此净化逻辑从未应用于 端点,使其完全开放。 处理程序(第 341-395 行)接受请求正文中的任意内容并将其直接写入磁盘,因此攻击者只需 POST 一个 HTML 文件即可存储有效载荷。 影响范围 受影响产品: 生态系统: pip 包名: comfyui 受影响版本: <= v0.13.0(报告时最新版本,提交 ) 已修补版本: 无 严重性: 严重性: 高 向量字符串: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:L/A:N 弱点: CWE-79: 网页生成期间输入净化不当(跨站脚本) 影响: 这是一个存储型跨站脚本(XSS)漏洞。一旦上传恶意文件,任何访问该 URL 的用户都将在 ComfyUI 应用程序上下文中执行 JavaScript。这允许攻击者: 窃取会话数据: 读取 ,其中包含工作流数据( , 等)和用户设置。 执行任意 API 调用: 队列恶意工作流、修改设置、上传/删除 ComfyUI 后端上的文件,作为受害者。 泄露数据: 将窃取的数据发送到外部攻击者控制的服务器。 钓鱼: 在 ComfyUI 上下文中呈现虚假登录页面。 修复方案 目前尚未提供具体的修复方案。建议尽快修补 端点,应用与 端点相同的 MIME 类型净化逻辑,以防止存储型 XSS 漏洞。 POC 代码 前提条件: 运行中的 ComfyUI 实例(默认端口 8188)。 1. 上传包含 JavaScript 的恶意 HTML 文件: 2. 在浏览器中打开以下 URL: 3. 将出现一个 对话框,显示 ,确认 JavaScript 执行。 4. 您可以通过 curl 验证危险的 头: 预期输出: 5. 清理: