vm2(一种流行的JavaScript沙盒环境)中的一个错误可能允许恶意行为者绕过沙盒保护并在主机设备上进行远程代码执行(RCE)。Vm2每周的下载量超过400万次,它在Node.js服务器中创建了一个安全上下文来运行不受信任的代码,而不会损害服务器。由于vm2在生产环境和开发人员环境中使用,该漏洞的潜在影响(CVSS得分最高为10)被提高了。
该安全漏洞 是由Oxeye Security研究人员Gal Goldshtein和Yuval Ostrovsky发现的。“在评估给定软件的安全性时,我们通常的方法是首先分析在同一软件中发现的先前安全漏洞,”Oxeye说。
“这有助于我们更好地掌握可用的攻击面,并且还可能导致由于修复不完整而导致的低悬错误。
“在查看之前向vm2维护人员披露的错误时,我们注意到一个有趣的技术:错误报告者滥用Node.js中的错误机制来逃避沙箱。”
与之前在vm2中发现的几个bug一样,新bug依赖于沙盒用于与主机通信的通道。在这种情况下,错误是由于异常处理不当引起的。
研究人员说:“我们发现的漏洞依赖于一种在虚拟机绕过世界中非常常见的技术,即在沙箱中找到可以与外部元素合作的元素。”
“一旦发现这种连接,攻击者就有机会与托管进程进行交互。”
该通道允许攻击者在Node.js服务器上运行任意代码,包括调用运行系统命令的函数。
该团队旨在尽快发布有关该错误的技术审查,并提供更多详细信息。防止漏洞利用的唯一方法是升级到最新版本的vm2。
“我们对这个库用于生产环境这一事实并不感到惊讶,主要是因为它每月的下载量超过1600万次,”研究人员说。“我们正在与几家发现此漏洞的公司进行负责任的披露。”
在另一份公告中,RedHat发布了受vm2漏洞影响的服务列表。
这不是vm2第一次修补沙盒绕过,这只突出了保护沙盒环境的困难。
“沙盒通常用于在应用程序中运行不受信任的代码。这意味着你不应该自动假设它们是安全的,”研究人员说。
“如果使用沙箱是不可避免的,我们建议将应用程序的逻辑、敏感部分与运行沙箱代码的微服务分开,这样如果威胁参与者成功地从沙箱中突围,攻击面将仅限于孤立的微服务。”
评论已关闭。