存储型 XSS 漏洞:通过恶意 EPUB 实现会话令牌窃取 漏洞概述 Grimmory 的基于浏览器的 EPUB 阅读器存在存储型跨站脚本(XSS)漏洞。攻击者可以在恶意的 EPUB 文件中嵌入任意 JavaScript 代码。当受害者打开该文件时,脚本将在浏览器中执行,并拥有对 Grimmory 应用程序会话上下文的完全访问权限。这可能导致会话令牌窃取和账户接管,包括管理员账户。 影响范围 受影响版本: 已修复版本: CVSS 评分:6.3/10 (Moderate) CVSS 向量: CWE:CWE-79 (Improper Neutralization of Input During Web Page Generation), CWE-80 (Improper Neutralization of Script-Related HTML Tags in a Web Page) 修复方案 1. 立即升级:升级到 或更高版本。 2. 临时缓解措施:如果无法立即升级,请限制书籍上传权限,仅允许受信任的用户上传。这虽然不能解决风险,但可以限制攻击者上传内容的范围。 技术细节 漏洞源于 在 iframe 中的配置不当。当 和 属性同时存在时,iframe 内的 JavaScript 可以访问父级 DOM 和 ,从而绕过同源策略。 攻击场景 会话令牌窃取与账户接管:恶意脚本读取 中的会话令牌并发送到攻击者控制的端点。 以受害者身份执行操作:无需窃取令牌,脚本可直接向 Grimmory 发起 API 请求,执行受害者权限内的任何操作。 通过第三方来源传播:恶意 EPUB 可通过公共分发渠道传播,用户下载后会在不知情的情况下执行恶意代码。 时间线 2026年3月:Grimmory 从 BookLee 分叉,采用 AGPL-3.0 许可证。 2026年3月19日:通过 GitHub 私有安全披露向 Grimmory 报告漏洞。 2026年4月22日:修复合并并发布安全公告。 参考链接 MDN: iframe sandbox attribute: https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/sandbox Escaping improperly Sandboxed iFrames: https://www.elfster.com/escaping-improperly-sandboxed-iframes.html Comparable advisory in Komga (GHSA-m7mm-6px-2mx4; GHSA-m7mm-6px-2mx4)