CVE-2026-34217SandboxJS是一个用于JavaScript沙箱隔离的库。在0.8.36版本之前,该库存在严重的作用域修改漏洞。攻击者可以通过精心构造的代码,利用`new`操作符泄露沙箱内部的解释器对象。这导致沙箱作用域层级中的对象被意外暴露给不受信任的代码,使得攻击者能够在沙箱内部修改作用域。尽管代码执行仍受沙箱限制且原型受保护,但该漏洞破坏了沙箱的隔离性。该问题已在0.8.36版本中修复。
该漏洞源于SandboxJS库在处理JavaScript对象实例化过程中的设计缺陷。在0.8.36之前的版本中,沙箱机制未能完全隔离内部解释器对象与用户代码的执行上下文。攻击者可以构造特定的恶意代码,利用`new`操作符的特性,在创建对象的过程中触发作用域链的异常遍历。这一过程允许不受信任的沙箱化代码获取到沙箱内部解释器的引用,导致作用域层级中原本应受保护的对象被泄露。攻击者利用这一泄露,可以读取甚至修改沙箱内部的作用域结构。虽然该漏洞并未导致完全的沙箱逃逸(即代码执行环境仍在沙箱内,且原型链保护机制依然有效,无法直接调用宿主机危险函数),但这种对沙箱内部状态的篡改能力破坏了隔离原则,可能导致沙箱内其他受控代码的逻辑被篡改,引发拒绝服务或数据泄露风险。