漏洞概述 在 Bazaar 市场中,通过包 README 事件处理程序存储的 XSS 漏洞。 描述 在 中将 Bazaar 包的 README 从 Markdown 渲染为 HTML,并使用 引擎和 。HTML 净化器是一个事件处理程序黑名单: 仅拒绝属性名称在固定黑名单中映射的事件处理程序。 该映射包含现代事件处理程序: 、 、 、 、 、 和 。它们不在列表中,因此净化器通过验证任何标签上的它们。 前端将渲染的 HTML 分配给 ,在 中,没有客户端 DOMPurify 用于将其转换为正常元素(没有沙箱)。内核在任何响应上都不发送 Content-Security-Policy、X-Frame-Options 或 X-Content-Type-Options 头,因此任何内联脚本在其事件触发时运行。 当管理员在 Settings -> Marketplace 中打开包时,会渲染 README。安装不需要。 结果:第三方 Bazaar 包作者可以在管理员的已认证 SiYuan 源上运行 JavaScript,当管理员查看并与包列表交互时,获得工作区的完全控制权。 影响范围 受影响版本:<= 3.6.5 修复版本:v3.7.0 修复方案 升级到 v3.7.0 或更高版本。 POC 代码 ```javascript alert(document