0xN4no/CVE-2026-30048

GitHub: 0xN4no/CVE-2026-30048

NotChatbot WebChat 组件存储型 XSS 漏洞(CVE-2026-30048)的概念验证与完整技术分析文档。

Stars: 0 | Forks: 0

# CVE-2026-30048 - NotChatbot WebChat <= 1.5.0 中的存储型跨站脚本攻击 (XSS) ## 摘要 `@developer.notchatbot/webchat` 包及其之前的版本(含 `1.5.0`)中存在一个存储型跨站脚本攻击 (XSS) 漏洞。 用户提供的输入在被存储和渲染到 AI 驱动的聊天对话历史记录之前,未经过适当的净化处理。这允许攻击者注入任意 JavaScript 代码,并在聊天历史记录被渲染或重新加载时执行。 由于该问题存在于可复用的 WebChat 组件本身,而非单一的网站实现中,因此任何集成了受影响包版本的应用程序都可能受到影响,无论其部署环境如何。 ## 受影响产品 - **供应商:** NotChatbot - **包:** `@developer.notchatbot/webchat` - **受影响版本:** `1.5.0` 及之前版本 ## 漏洞类型 - 存储型跨站脚本攻击 (XSS) ## 受影响组件 - WebChat 消息渲染 - 对话历史记录渲染 ## 攻击载体 攻击者可以发送包含恶意 HTML/JavaScript payload 的构造聊天消息。 该 payload 被存储,并在对话历史记录再次渲染时执行。 ## 概念验证 ### Payload ``` ``` ``` ``` ``` ``` ### 视频演示 https://youtu.be/HklaoNKP9H8 ## 复现步骤 1. 使用官方 package/CDN 集成 WebChat 组件 2. 打开聊天界面 3. 将上述 payload 作为聊天消息发送 4. 重新加载或重新打开对话 5. 观察浏览器中的 JavaScript 执行情况 ## 影响 - 在受害者浏览器中执行任意 JavaScript - 会话劫持 - 信息泄露 - 视上下文而定,可能导致账户接管 ## 根本原因 用户输入在聊天历史记录渲染逻辑中渲染时,未经过适当的输出编码或 HTML 净化处理。 ## 建议修复方案 - 在渲染前对用户输入进行净化和转义 - 使用安全的净化器,例如 DOMPurify - 默认对输出进行编码 - 实施严格的 Content Security Policy (CSP) ## CVE CVE-2026-30048 ## 参考资料 - https://www.npmjs.com/package/@developer.notchatbot/webchat - https://app.unpkg.com/@developer.notchatbot/webchat@1.5.0 - https://app.unpkg.com/@developer.notchatbot/webchat@1.4.4 - https://gist.github.com/0xN4no/0601f398942a29259d217ea650f694fe ## 发现者 - Nano (@0xNano) - https://0xnano.com/ ## 时间线 - 发现时间:2026-01 - CVE 分配时间:2026-03
标签:AI聊天, CISA项目, CVE-2026-30048, Github安全, HTML注入, JavaScript注入, NotChatbot WebChat, Web安全漏洞, 会话劫持, 信息泄露, 前端安全, 多模态安全, 存储型XSS, 客户端攻击, 教育, 数据可视化, 漏洞复现, 聊天组件漏洞, 跨站脚本攻击, 输入验证缺失, 输出编码