CVE-2026-41240DOMPurify是用于HTML、MathML和SVG的DOM-only XSS清理器。在3.4.0版本之前,存在一处逻辑缺陷。当使用基于函数的ADD_TAGS时,FORBID_TAGS的处理与FORBID_ATTR不一致。由于短路评估机制,特定条件下会跳过FORBID_TAGS检查,导致被禁止的元素及其属性能够绕过清理过程。攻击者可利用此漏洞构造恶意Payload,引发XSS攻击。
该漏洞源于DOMPurify在处理标签和属性过滤时的逻辑不一致。尽管提交c361baa针对FORBID_ATTR引入了提前退出机制以优化性能(位于第1214行),但开发团队并未对FORBID_TAGS应用相同的修复逻辑。在代码第1118至1123行处,当EXTRA_ELEMENT_HANDLING.tagCheck函数返回true值时,受JavaScript短路评估机制影响,程序会直接跳过后续至关重要的FORBID_TAGS检查流程。这意味着,攻击者通过精心构造输入并利用基于函数的ADD_TAGS特性,可以成功绕过黑名单机制。这使得原本应被严格剔除的恶意标签及其属性能够完整保留在DOM结构中,彻底破坏了清理器的核心安全假设,从而导致存储型或反射型XSS攻击成为可能。