CVE-2025-68457Orejime是一个专注于可访问性的JavaScript同意管理器(Cookie Consent Manager),用于帮助网站收集和管理用户的隐私同意选择。该工具在Web应用中被广泛使用,特别是在需要符合GDPR等隐私法规的场景中。然而在2.3.2之前的版本中,Orejime存在一个严重的安全漏洞,允许攻击者通过在HTML元素的data属性中嵌入javascript:协议代码来执行任意JavaScript代码。当用户同意相关隐私目的时,Orejime会将data属性转换为标准的HTML属性(如将data-href转换为href),这一转换过程会导致嵌入的javascript:代码被执行。虽然在大多数标准配置中影响有限(因为Orejime处理的元素通常是硬编码的静态内容),但如果攻击者能够向页面注入HTML代码(如通过存储型XSS或用户生成内容),则可以利用此漏洞进行进一步攻击,包括窃取用户会话Cookie、劫持用户账户或进行钓鱼攻击。此漏洞已被官方在2.3.2版本中修复,强烈建议所有用户立即升级。
该漏洞的根本原因在于Orejime在处理用户同意状态变化时,对HTML元素的data属性进行了不安全的数据转换操作。具体来说,当用户在同意管理器中做出选择(如同意某个目的的cookies),Orejime会遍历相关联的DOM元素,并将data-*属性转换为对应的标准HTML属性。例如,一个包含href属性的元素如果带有data-href,同意后data-href会被转换并覆盖原有的href属性。攻击者利用这一机制,在data属性中注入javascript:伪协议代码,当Orejime执行属性转换时,这些恶意代码会被浏览器解析执行。攻击场景通常需要满足以下条件:1)攻击者能够在页面中注入带有恶意data属性的HTML代码;2)相关元素被Orejime管理且包含可转换的data属性;3)用户需要与同意管理器交互并同意相关目的。在实际攻击中,攻击者可能通过存储型XSS、评论区注入或第三方脚本漏洞等方式注入恶意HTML。一旦用户访问受影响的页面并与Orejime交互,注入的JavaScript代码将在用户浏览器中以当前页面上下文执行,从而实现会话劫持、敏感数据窃取等恶意操作。修复方案在版本2.3.2中通过添加属性值验证和净化机制来阻止javascript:协议的执行。