CVE-2026-26954CVE-2026-26954是SandboxJS沙箱库中的一个严重安全漏洞,CVSS评分高达10.0。SandboxJS是一个用于隔离JavaScript执行环境的沙箱库,广泛应用于需要安全执行不可信代码的场景。该漏洞存在于0.8.34之前的版本,攻击者可以通过精心构造的输入获取包含Function对象的数组,并结合Object.fromEntries方法构造任意属性访问,从而突破沙箱限制实现沙箱逃逸。成功利用此漏洞可导致攻击者在宿主环境中执行任意代码,完全绕过沙箱的安全隔离机制,对使用该库的应用系统造成严重安全威胁。由于该漏洞无需认证且可远程利用,攻击复杂度低,对机密性、完整性和可用性均造成严重影响。
SandboxJS沙箱逃逸漏洞的核心在于其对JavaScript内置对象的访问控制存在缺陷。攻击者首先通过沙箱的某个接口获取包含Function构造函数的数组。在SandboxJS的安全模型中,数组本身可能被允许在沙箱内使用,但其内部元素Function的访问权限控制不足。攻击者利用Object.fromEntries方法,该方法可以将键值对对象转换为真正的JavaScript对象。当攻击者构造类似{[p]: Function}的结构时,其中p可以是任何可构造的属性名,Object.fromEntries会将其转换为真实的JavaScript对象。关键在于,这个新创建的对象实际上引用了全局的Function构造函数,而非沙箱内的受限版本。通过这个技巧,攻击者可以访问沙箱外部的原生Function对象,从而获取对JavaScript运行时的完全控制权。进一步利用Function构造函数可以执行任意代码,最终实现沙箱逃逸,在宿主环境中执行恶意代码。此漏洞的利用方式简单直接,攻击者只需几行代码即可完成沙箱绕过。