安全公司Oxeye的研究人员在Spotify的后台发现了一个关键的远程代码执行漏洞(CVSS评分为9.8)。Backstage是Spotify用于构建开发人员门户的开源平台,它被多个组织使用,包括美国航空公司、Netflix、Splunk、Fidelity Investments和Epic Games。

此问题可通过触发vm2第三方库中最近披露的虚拟机沙箱逃逸漏洞(CVE-2022-36067 又名Sandbreak)来利用。

Oxeye研究人员通过Spotify的漏洞赏金计划报告了这个RCE漏洞,Backstage开发团队在1.5.1版本中迅速修复了这个漏洞。

“未经身份验证的黑客可以通过利用Scaffolder核心插件中的vm2沙箱逃逸,在Backstage应用程序上执行任意系统命令。”Oxeye发布的建议写道。

该漏洞存在于允许开发人员在Backstage中创建组件的软件模板工具中。

研究人员解释说,模板引擎利用vm2库来防止不可信代码的执行。

“在审查如何限制这种风险时,我们注意到可以通过在隔离环境之外使用带有Nunjucks的用户控制模板,来运行shell命令。因此,Backstage开始使用vm2 JavaScript沙盒库来降低这种风险。在早期的研究论文中,Oxeye发现了一个vm2沙盒逃逸漏洞,导致主机上的远程代码执行(RCE)。

研究人员在Shodan中对Backstage favicon哈希进行了简单的查询,并发现了500多个暴露在互联网上的Backstage实例。

专家们注意到,默认情况下部署Backstage时没有身份验证机制或授权机制,允许来宾访问。一些公开的Backstage实例不需要任何身份验证。

通过进一步的测试,专家们可以确定,在许多情况下,不需要身份验证就可以利用该漏洞。

“任何基于模板的虚拟机转义的根源都是在模板中获得JavaScript执行权限。通过使用“无逻辑”模板引擎(如Mustache),可以避免引入服务器端模板注入漏洞。尽可能将逻辑与演示文稿分离,可以大大减少您受到最危险的基于模板的攻击风险。有关缓解基于模板的漏洞的更多信息,请参阅PortSwigge的技术公告。如果您使用Backstage进行身份验证,请同时在前端和后端启用它。”