Dompurify bypass in mode 漏洞概述 Dompurify 在使用 模式时,若同时开启 模式,会导致模板表达式(如 )未被正确剥离,从而允许攻击者通过模板注入执行 XSS。 该漏洞源于两个处理阶段的逻辑缺陷: 1. DOM 遍历阶段:仅对文本节点进行正则替换,无法处理跨节点或动态生成的表达式。 2. 字符串清理阶段:在 模式下被跳过,导致最终返回的 DOM 对象中仍包含可被 Vue 2 等框架解析执行的恶意模板。 影响范围 受影响版本: 修复版本: 触发条件: - 使用 - 使用 或 - 输入内容包含恶意模板表达式(如 ) - 后续由模板引擎(如 Vue 2)渲染该 DOM 修复方案 在 分支中,在返回 DOM 前调用 合并相邻文本节点,并重新应用正则替换以清除残留模板表达式。 POC 代码 修复代码片段(来自 GitHub 页面)