CVE-2026-41886locize是一款连接代码和国际化设置的本地化平台。在其4.0.21版本之前的客户端SDK中,存在一个严重的安全设计缺陷。SDK注册了一个window消息监听器,用于处理来自编辑器的内部指令,但在分发这些指令之前,未能验证消息的来源。相反,它仅检查了消息载荷中攻击者可控的sender字段。这允许任何能够嵌入或被嵌入locize启用主机的第三方网页,发送精心构造的postMessage消息并触发内部处理程序,从而导致权限绕过和潜在的数据安全风险。
该漏洞的技术根源在于locize客户端SDK(具体位于src/api/postMessage.js)对postMessage事件处理机制的逻辑缺陷。开发人员虽然意识到了需要区分合法消息,但错误地依赖了载荷内部的数据而非信源属性。具体而言,代码仅对event.data.sender是否等于'i18next-editor-frame'进行了校验,而完全忽略了浏览器提供的安全属性event.origin。攻击者利用这一缺陷,可以通过构建恶意网站,诱导受害者访问。恶意网站通过iframe嵌入目标页面或通过window.open打开目标页面,建立起与受害窗口的通信渠道。随后,攻击者构造一个特殊的JavaScript对象,将sender字段伪装为合法值,并在载荷中注入恶意操作指令(如editKey或commitKey)。通过调用postMessage API发送此对象,受害者的locize SDK会误以为这是来自可信编辑器的指令,进而解析并执行该操作。由于未验证源,这实质上打破了同源策略,使得攻击者能在受害者上下文中执行敏感功能,导致数据篡改或信息泄露。