CVE-2026-33311DiceBear是一个用于设计师和开发者的头像库。在5.0.0版本及之后,且在5.4.4、6.1.4、7.1.4、8.0.3和9.4.1版本之前,从用户提供的选项(如backgroundColor、fontFamily、textColor)派生的SVG属性值在插入到SVG输出之前未进行XML转义。当应用程序将不受信任的输入传递给createAvatar()并以内联方式或使用Content-Type: image/svg+xml提供生成的SVG时,这可能导致跨站脚本(XSS)。攻击者可利用此漏洞在受害者浏览器中执行恶意脚本。
该漏洞的核心原理在于SVG注入引发的跨站脚本攻击(XSS)。DiceBear库在处理SVG生成请求时,未对用户可控的选项参数(如backgroundColor、fontFamily、textColor)进行严格的XML实体编码,直接将其值拼接到SVG文档的属性节点中。攻击者可以利用这一缺陷,精心构造包含恶意JavaScript代码的Payload。例如,通过在backgroundColor参数中注入双引号来闭合原有属性,并插入如onerror或onload等事件处理器,从而将恶意代码植入SVG结构。当受害者的浏览器请求并解析该生成的SVG文件(特别是当服务器设置了Content-Type为image/svg+xml时),浏览器会将其作为文档对象解析并执行其中的脚本。由于CVSS向量中包含S:C(范围改变),该XSS攻击不仅限于当前上下文,还可能波及同源下的其他页面或会话,造成数据泄露或会话劫持。