漏洞概述 漏洞编号: #791923 漏洞名称: Langflow <= 1.8.3 存储型跨站脚本 (XSS) 漏洞 漏洞类型: 存储型跨站脚本 (Stored Cross-Site Scripting) 受影响组件: Langflow 前端组件中的 Markdown 渲染器 漏洞描述: - Langflow 的前端组件依赖 Markdown 组件渲染聊天消息和流描述。 - Markdown 渲染器显式启用了原始 HTML 解码,使用 插件,但未能与像 这样的净化插件配对。 - 此疏忽允许任意 HTML 和 JavaScript 注入到 DOM 中,任何查看内容的用户都会受到影响。 - 漏洞代码文件: - 前端 React 组件渲染函数: 处理用户输入。 - 通过启用 而不使用 ,危险标签和属性(如 或 )被保留并在浏览器中执行。 - 攻击者可以在 Langflow GUI 2 中登录,使用聊天接口发送消息或更新项目的 Flow Description。 - 攻击者注入 XSS 载荷,例如: 。 - 后端安全策略允许在数据库中存储此载荷而不进行净化(这是预期的)。 - 当攻击者或其他受害者(如更高权限的管理员)查看聊天历史或项目配置时,受害者的浏览器会渲染恶意 Markdown 并执行嵌入的 JavaScript 载荷。 影响范围 影响: - 会话劫持: JavaScript 执行允许攻击者窃取存储在 中的 值。 - 账户接管和特权操作: 脚本可以代表管理员执行未经授权的异步 HTTP API 调用,删除数据库或修改安全设置。 持久性风险: 载荷存储在数据库中,影响每个访问受污染项目或聊天会话的用户。 受影响版本: Langflow <= 1.8.3 修复方案 修复建议: - 在 Markdown 渲染器配置中,将 插件与 插件配对使用。 - 确保对 Markdown 渲染器进行适当的安全配置,以防止任意 HTML 和 JavaScript 注入。 - 后端安全策略应实施净化机制,防止恶意载荷在数据库中存储。 POC 代码