关键信息 漏洞描述 类型: 存储型跨站脚本(XSS) 位置: 对话配置功能中的 字段,特别是在“Assistant Setting”下的“Opening greeting”部分。 问题: 应用程序未能正确对用户输入进行清理,导致未清理的内容在使用带有rehype-raw插件的Markdown组件渲染时执行恶意HTML和JavaScript。 源-汇分析 1. 源: 函数在 中接受未经清理的用户提供的 参数。 2. 中间体: 在 中直接将未清理的用户输入存储到数据库。 3. 中间体: 在 中以JSON响应返回未清理的数据。 4. 汇: 组件在 中使用rehype-raw插件渲染未清理的内容,允许JavaScript执行。 证明概念 1. 登录RAGFlow应用。 2. 导航到聊天部分并点击“Create an Assistant”按钮。 3. 在“Opening greeting”字段中输入以下payload: 4. 开始新对话,观察到显示“XSS Vulnerability in RAGFlow”的JavaScript警告弹窗。 影响 攻击者可以: 在其他用户的浏览器上下文中执行任意JavaScript。 窃取认证令牌、会话cookie和其他敏感信息。 代表受害者执行未经授权的操作。 访问包括知识库内容在内的敏感数据。 修复 GitHub修复链接 详细信息 仓库: https://github.com/infiniflow/ragflow 版本: 0.17.2