在本周的文摘中,我们将讨论。
- LinodeTerraform (TF)供应商确定性的密码创建
- Apache Commons文本远程代码执行(RCE)
- Vm2沙箱逃逸到RCE
LinodeTerraform 供应商创建一个非种子确定的密码
在LinodeTerraform Provider中发现了一个安全漏洞,该插件旨在使用Terraform ,自动配置Linode实例。Terraform 是一个IaC工具,主要是创建、修改和销毁服务器,而不是管理这些服务器上的软件。
该漏洞影响到用Terraform 插件v1.29.3版本创建的Linode。在Terraform ,当一个Linode被创建而没有提供根密码时,TF提供者使用随机生成的密码。由于我们的密码生成功能的改变,受影响的插件版本似乎生成了确定的密码。脆弱的组件涉及使用math/randGo 包,而不是使用 crypto/rand 来生成随机密码。此外,math/rand包没有被播种。
为了保护您未来的部署,请将LinodeTerraform Provider工具升级到最新版本,目前是v1.29.4。如果你不能立即升级,你也可以改变通过受影响的插件部署的实例上的根密码。
如果你需要进一步协助,或有任何问题,请联系support@linode.com。
Apache Commons文本远程代码执行(RCE)
Apache Commons Text performs variable interpolation, allowing properties to be dynamically evaluated and expanded. The standard format for interpolation is “${prefix:name}”, where “prefix” is used to locate an instance of org.apache.commons.text.lookup.StringLookup that performs the interpolation.
CVE-2022-42889是存在于Apache Commons Text 1.5到1.9版本中的远程代码执行,其中默认的Lookup实例集(来自StringSubstitutor类)包括插值器,可能导致任意代码执行或与远程服务器联系。有漏洞的查找器是
- "script" - 使用JVM脚本执行引擎(javax.script)执行表达式。
- "dns" - 解析DNS记录
- "url" - 从URL加载值
此外,如果使用不受信任的配置值,任何在受影响版本中使用插值默认值的远程服务器应用程序都可能受到远程代码执行或无意中与远程服务器联系的影响。
确定你是否安装了这个库的方法是运行`find / -type f -name 'commons-text*.jar'`,这将给我们提供任何以commons-text为前缀的.jar文件。
该修正从Apache Commons Text 1.10.0开始使用。该修复程序默认禁用了dns、url和脚本 查找的插值器。其他解决方法也可以应用,其中包括在接受和处理不受信任的数据的地方对输入进行消毒。
Vm2沙箱逃逸到RCE
vm2是一个广泛使用的npm包,它作为一个沙盒,你可以用允许列出的Node的内置模块运行不受信任的代码。这个包非常受欢迎,每月有超过1600万次的下载,这使得它成为一个值得利用的漏洞来对付安装了vm2包的应用程序。
CVE-2022-36067是一个存在于vm2沙盒库中的远程代码执行漏洞,用户可以逃出vm2的沙盒并获得对运行沙盒的主机的访问权。该漏洞目前影响到3.9.10及以下版本。
这个漏洞涉及到使用prepareStackTrace方法,这是一个允许开发者定制应用程序中发生的错误的调用堆栈的函数。prepareStackTrace方法是一个 "错误 "构造函数,可以创建一个 "错误 "对象。当一个错误发生并访问被抛出的错误对象的 "堆栈 "属性时,Node.js 将调用该方法,同时向其提供错误的字符串表示和 "CallSite "对象的数组作为参数。
研究人员一开始就用自己的对象覆盖了全局的Error对象。这个新对象使攻击者能够使用prepareStackTrace函数,以利用一个名为 "getThis "的非沙盒函数,这是一个用于返回堆栈框架中 "this "对象的函数。这个堆栈框架对象是一个非沙盒对象,可以让攻击者执行函数,从而逃离沙盒并在代码运行的主机上执行代码。
该修正从vm2 3.9.11开始可用。
注释