SandboxJS逃逸漏洞严重,可能导致主机被接管

admin 2026-05-14 11:58:33 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: sandboxjs库存在严重逃逸漏洞CVE-2026-43898,攻击者可利用泄露的lisptype.call回调突破沙箱限制,在宿主机上实现远程代码执行。该漏洞影响所有0.9.6之前版本,CVSS评分为10.0。修复版本0.9.6已发布,建议用户立即更新,若无法更新应避免运行不受信任代码。 综合评分: 85 文章分类: 漏洞分析,漏洞预警,应用安全,安全开发,web安全


cover_image

SandboxJS 逃逸漏洞严重,可能导致主机被接管

原创

网络安全9527 网络安全9527

安全圈的那点事儿

2026年5月13日 19:25 北京

在小说阅读器读本章

去阅读

SandboxJS 是一个广泛使用的 JavaScript 沙箱库,可在 npm 上获取。该漏洞被发现存在严重安全漏洞,攻击者可以利用该漏洞完全突破沙箱限制,直接在宿主系统上运行任意代码。

该漏洞被追踪为 CVE-2026-43898,最高严重性评分为 10.0,这在当今日益严峻的全球威胁形势下,是安全漏洞所能达到的最严重程度。

该缺陷影响所有版本的 @nyariv/sandboxjs 包,包括 0.9.5 版本。问题的核心在于,沙盒定义的函数意外地泄露了一个名为 LispType.Call 的强大内部回调函数。

一旦攻击者获取了该回调函数,他们就可以利用它访问沙箱之外,并完全、不受限制地控制整个底层主机环境。

GitHub 的安全研究人员发现了该漏洞,并发布了编号为 GHSA-g8f2-4f4f-5jqw 的安全公告。该漏洞由一位名为 Macabely 的安全研究人员报告,他还提供了一个可运行的概念验证,以演示如何在真实环境下进行逃逸。

该漏洞的影响十分严重,因为攻击者利用此漏洞即可在宿主机上实现完全远程代码执行,无需登录凭证,也无需任何用户交互。这意味着任何使用受影响库运行不受信任的 JavaScript 代码的应用程序都可能面临宿主机被完全控制的风险。

沙盒逃脱游戏是如何运作的?

已发布修复版本 0.9.6,并可在 npm 上获取。强烈建议所有受影响软件包的用户立即更新。继续使用 0.9.5 或更低版本将使此类破坏性攻击的风险大大增加。

该漏洞存在于名为 prop.ts 的文件中的属性访问逻辑中,具体来说,存在于名为 addOps 的函数中。问题在于,沙盒代码被允许读取函数的调用者、被调用者和参数属性。

在 CommonJS 构建的库中,这使得沙盒函数可以调用类似这样的函数 function f(){ return f.caller } ,并接收最初触发它的内部主机端回调。

泄露的回调函数是 LispType.Call 操作,它处理运行时内部的函数调用。关键问题在于,该处理程序接受一个 params 对象并直接使用其字段,而没有检查这些字段是否确实来自受信任的执行器。

由于攻击者完全控制了这些字段,他们可以伪造输入,欺骗处理程序执行它原本不应该执行的操作。

攻击者可以通过泄露的回调函数,串联一系列精心构造的调用,从而提取出宿主机的真实函数构造函数。一旦获取到该构造函数,攻击者就可以向其传递一段 JavaScript 代码,并直接在宿主机上执行。

该安全公告中包含的概念验证通过 Node 内置的 child_process 模块运行系统命令清楚地证明了这一点。

远程代码执行及其更广泛的风险

CVSS评分10.0充分反映了该漏洞的危险性。该攻击可通过网络发起,实施难度低,无需特殊权限,也无需用户任何操作。

范围标记为已更改,这意味着成功的攻击会从沙箱环境直接越过边界进入主机系统。

任何使用 SandboxJS 执行用户提交或第三方 JavaScript 代码的平台都将面临风险。这包括在线代码编辑器、服务器端脚本工具、自动化平台以及任何处理不受信任脚本的应用程序。

一旦沙箱被突破,攻击者就能完全掌控主机的机密性、完整性和可用性。

0.9.6 版本中的修复程序通过阻止对沙盒代码中的调用者、被调用者和参数属性的访问来解决根本原因。

无法立即更新的开发人员应避免在受影响的库中运行任何不受信任的 JavaScript,直到补丁已正确应用并在自己的环境中进行了彻底测试。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:安全圈的那点事儿 网络安全9527 网络安全9527《SandboxJS 逃逸漏洞严重,可能导致主机被接管》

评论:0   参与:  0