Helpy 2.8.0 存储型 XSS 漏洞总结 漏洞概述 漏洞名称:Helpy 2.8.0 – knowledgebase Doc body rendering 中的存储型 XSS 漏洞类型:存储型跨站脚本攻击 (Stored XSS) CVSS 评分:4.8 (Medium) CVE ID:CVE-2026-40230 根本原因:在知识库文档渲染逻辑中,攻击者控制的 参数被存储。该数据被转换为 HTML,随后通过 方法处理。该方法虽然名为“sanitize”(清理),但实际上使用了 Rails 的 标记内容,导致原始 HTML 标签(包括 )未被转义直接输出。 影响范围 受影响软件:Helpy 2.8.0 受影响组件:Knowledgebase Doc body rendering (知识库文档正文渲染) 利用条件:需要具有管理员或代理编辑权限的账户来创建或编辑文档。 危害后果:任何查看该渲染文章的访问者(包括未认证用户)的浏览器中都会执行恶意 JavaScript。 修复方案 当前状态:目前尚无补丁可用。 建议措施:等待官方发布修复版本,或手动修改代码逻辑,确保在输出前对内容进行正确的 HTML 转义,避免使用 标记未经清理的用户输入。 POC 代码 (Proof of Concept) 1. 恶意载荷 (Payload) 在文档正文的 HTML 视图中粘贴以下代码: 2. 相关源码分析 (Source Code) 存储与转换 (app/models/doc.rb:88-92) 注:RDiscount 将 Markdown 源码转换为 HTML,原始 标签保留。 错误的清理逻辑 (app/helpers/docs_helper.rb:29-31) 注: 指示 Rails 不要转义字符串,导致恶意脚本直接执行。 渲染调用 (Templates) 模板中调用方式如下: