CVE-2026-41238DOMPurify是HTML、MathML和SVG的XSS清理器。在3.0.1至3.3.3版本中,存在基于原型污染的XSS绕过漏洞。当应用在默认配置下使用DOMPurify.sanitize()时,若存在先前的原型污染,攻击者可向Object.prototype注入允许的tagNameCheck和attributeNameCheck正则值。这会导致DOMPurify允许任意自定义元素及属性(含事件处理程序)通过清理,从而引发跨站脚本攻击。
该漏洞的核心机制是利用JavaScript原型链特性影响DOMPurify的校验逻辑。DOMPurify在处理HTML时,会检查自定义元素的标签名和属性名是否符合预设的`tagNameCheck`和`attributeNameCheck`规则。在默认配置下,这些规则可能未严格限制。攻击者首先需利用应用中存在的其他原型污染漏洞,将通配符正则(如`/.*/`)注入到`Object.prototype`的对应属性中。当DOMPurify执行清理操作时,由于原型继承,它会获取到被污染的校验规则,从而错误地认为所有自定义标签和属性(包括`onerror`、`onmouseover`等事件处理器)都是合法的。这导致原本应被过滤的恶意HTML代码被保留并渲染,最终在用户浏览器中执行任意JavaScript代码。