vm2库现13个严重漏洞,开发人员被敦促升级至3.11.2版本修复!
vm2库现13个严重漏洞开发人员被敦促升级至3.11.2版本修复开发人员被敦促将vm2库升级到最新版本3.11.2以修复所有漏洞。在vm2 JavaScript沙箱包中发现了13个严重漏洞这些漏洞可能使攻击者的代码逃离容器对IT环境造成严重破坏。这些警告来自vm2维护者Patrik Simek的安全公告。vm2是一个开源的虚拟机/沙箱可使用白名单中的Node.js内置模块运行不可信代码。在这13个漏洞中较为严重的一个是CVE - 2026 - 26956这是一个可实现任意代码执行的完全沙箱逃逸漏洞。处于VM.run()中的攻击者代码可以获取主机进程对象并在无需主机配合的情况下运行主机命令。不过Socket的研究人员在一封电子邮件中表示关于此逃逸漏洞的公告显示该漏洞仅在Node.js 25.6.1上得到确认并且需要支持WebAssembly异常处理和JSTag的Node.js版本。他们指出最高风险的情况是在Node 25上使用vm2 3.10.4版本的应用程序攻击者控制的JavaScript被传入VM.run()。Socket研究工程师Wenxin Jiang称“这是一个影响范围窄但影响程度高的漏洞。由于公告指向特定的易受攻击版本和特定的Node 25/WebAssembly组合它似乎不会影响所有vm2部署。但当这些条件同时满足时安全边界将完全失效原本应被限制在沙箱内的代码可以访问主机进程并执行命令。这就是为什么使用vm2运行用户提供的JavaScript的团队应迅速打补丁并审查沙箱进程可以访问的内容。”尽管Socket并非vm2的维护者但它表示将为无法立即升级到最新修复版本的开发人员发布补丁。另一个严重漏洞是CVE - 2026 - 44007这是vm2 Node.js库中的一个访问控制不当漏洞允许沙箱逃逸并在底层主机上执行任意操作系统命令。其公告称该漏洞在于nesting:true选项与旧模块解析器的交互方式。此漏洞已在vm2 3.11.1版本中修复。Jiang表示“对于首席安全官CSO来说这两个漏洞都需要紧急关注但第二个NodeVM嵌套问题可能是更多组织需要立即审计的。” Socket研究人员表示这两个漏洞都能将沙箱内的JavaScript转化为主机系统上的命令执行。区别在于可能受影响的环境数量。Node 25/WebAssembly问题的影响范围似乎更窄因为它依赖于特定的vm2版本和特定的较新Node.js运行时行为。而NodeVM嵌套问题的影响范围可能更广因为它影响更多版本并且由一些开发人员可能有意使用的配置模式触发。Jiang补充说这两个公告都传达了一个更广泛的教训JavaScript沙箱难以确保安全运行时行为或配置的细微差异可能会带来重大的安全后果。他说“第一个问题似乎与狭窄的Node 25/WebAssembly路径相关。第二个问题是涉及NodeVM和nesting:true的配置驱动型逃逸。在这两种情况下风险最高的是那些运行不可信JavaScript并认为vm2能限制其运行的组织。这些应用程序开发团队应立即打补丁并为沙箱工作负载增加更强的隔离措施。”“脆弱的安全模型”Sonatype高级安全研究员Adam Reynolds在一封电子邮件中表示这些沙箱逃逸漏洞表明在受信任的进程中对不可信代码进行沙箱化是一种脆弱的安全模型。他说“一旦不可信代码在可以访问凭证、机密信息、底层文件系统、网络或具有部署权限的进程中运行沙箱绕过就很容易导致整个系统被攻破。” 他补充说仅仅在依赖树中安装vm2并不足以使其中一些漏洞被利用。例如攻击者通常需要能够在受漏洞影响的应用程序控制的vm2沙箱内执行精心构造的JavaScript对于CVE - 2026 - 26956还需要精心构造的WebAssembly。如果应用程序从不实例化vm2仅将其用于受信任的内部脚本或者根本不允许攻击者控制的代码执行那么即使存在该依赖项也可能不存在实际的利用途径。他表示如果一个组织运行的任何应用程序受到vm2漏洞影响应立即进行升级。为了在升级完成前降低风险用户可以避免使用Node.js 25运行时在不可信沙箱中完全禁用或阻止WebAssembly并防止用户控制的WASM编译/执行。他还补充说“由于未来的运行时更新可能会导致类似问题vm2应被视为一种便捷的隔离层而非严格的安全边界。”此外Enderle Group的Robert Enderle表示真正重视安全的IT领导者应停止依赖软件级沙箱来处理不可信代码。他建议开始考虑将这些进程迁移到加固的Docker容器或V8 Isolates中。