文章总结: SandboxJS库曝出四个CVSS10.0高危漏洞,利用函数返回值缺陷、Map机制失效、原型污染及TOCTOU问题可完全突破沙箱,在宿主机执行任意代码。该漏洞影响0.8.28及更早版本,开发者需立即升级至0.8.29以修复风险并确保隔离安全。 综合评分: 90 文章分类: 漏洞预警,漏洞分析,应用安全,代码审计,安全工具
SandboxJS四大高危漏洞可完全突破沙箱控制宿主系统
FreeBuf
2026年2月11日 18:06 上海
专为隔离和保护 JavaScript 执行而设计的 SandboxJS 库近期曝出四个高危漏洞(CVE-2026-25520、CVE-2026-25586、CVE-2026-25587 和 CVE-2026-25641),这些漏洞均获得 CVSS 10.0 的最高风险评分,攻击者可借此完全突破沙箱限制,在宿主系统上执行任意代码。
对于依赖 SandboxJS 安全运行非受信代码的开发者而言,这些发现无异于”红色警报”。该库的安全承诺已被多种绕过核心防护的攻击途径彻底瓦解。
Part01
漏洞技术细节
函数返回值处理缺陷(CVE-2026-25520)
该漏洞利用库函数处理返回值时的逻辑缺陷。正常情况下,沙箱会对对象进行封装以防止其与外部环境交互,但此漏洞允许攻击者通过方法调用链访问宿主的 Function 构造函数。安全公告指出:”函数返回值未被正确封装”,攻击者可通过 Object.values 或 Object.entries 获取包含宿主构造函数的数组,从而获得引擎控制权。
Map对象安全机制失效(CVE-2026-25587)
该漏洞针对通常被视为安全的 Map 对象,问题源于库的 let 实现存在缺陷,允许攻击者覆写 Map.prototype.has 方法。公告强调:”由于 Map 被列入 SAFE_PROTOYPES,其原型可通过 Map.prototype 获取”,通过覆写这一核心方法,攻击者可操纵沙箱内部逻辑实现逃逸。
宿主原型污染漏洞(CVE-2026-25586)
这是该漏洞组中最危险的漏洞,利用 SandboxJS 使用 hasOwnProperty 进行属性检查的机制。攻击者可对沙箱化对象的 hasOwnProperty 进行”影子替换”或覆写。公告警告:”当返回值为真时,白名单检查将被跳过”,这一简单技巧即可绕过对 proto等敏感原型的访问限制,使攻击者能自由污染宿主环境。
检查时与使用时差漏洞(CVE-2026-25641)
这是典型的”检查时与使用时差”(TOCTOU)漏洞,源于库在验证属性键与实际使用之间存在时间差。公告解释:”攻击者可传入恶意对象,这些对象在使用时会强制转换为不同的字符串值”,使得安全检查时看似无害的键在实际访问时转变为恶意载荷。
Part02
影响范围与修复方案
所有四个漏洞均影响 SandboxJS 0.8.28 及更早版本,维护者已在 0.8.29 版本发布完整补丁。
参考来源:
Code Red: 4 Critical SandboxJS Flaws (CVSS 10.0) Allow Host Takeover
Code Red: 4 Critical SandboxJS Flaws (CVSS 10.0) Allow Host Takeover
#
#
#
推荐阅读
电台讨论
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:FreeBuf 《SandboxJS四大高危漏洞可完全突破沙箱控制宿主系统》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论