关键词
漏洞
![]()
专为隔离和保护 JavaScript 执行而设计的 SandboxJS 库近期曝出四个高危漏洞(CVE-2026-25520、CVE-2026-25586、CVE-2026-25587 和 CVE-2026-25641),这些漏洞均获得 CVSS 10.0 的最高风险评分,攻击者可借此完全突破沙箱限制,在宿主系统上执行任意代码。
对于依赖 SandboxJS 安全运行非受信代码的开发者而言,这些发现无异于"红色警报"。该库的安全承诺已被多种绕过核心防护的攻击途径彻底瓦解。
漏洞技术细节
函数返回值处理缺陷(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)漏洞,源于库在验证属性键与实际使用之间存在时间差。公告解释:"攻击者可传入恶意对象,这些对象在使用时会强制转换为不同的字符串值",使得安全检查时看似无害的键在实际访问时转变为恶意载荷。

安全圈

网罗圈内热点 专注网络安全
实时资讯一手掌握!
好看你就分享 有用就点个赞
支持「安全圈」就点个三连吧!
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.