Discourse 漏洞 CVE-2021-41163

大家好,

我最近得知 Discourse 中存在此安全漏洞 NVD - CVE-2021-41163 (nist.gov)

我有些好奇,由于该漏洞涉及 /webhooks/aws URL,部署在 Azure 中的 Discourse 是否也会受到影响?

无论您在哪里托管,每个实例都会受到影响(如果未打补丁)。

@Falco,感谢快速回复!

我并非 Ruby 专家,但我认为这一行代码应该能阻止在 Azure 上执行易受攻击的部分,因为它会评估为 false??请纠正我的理解,因为我不懂 Ruby。

另外,作为一个完全的临时修补方案(不推荐,因为升级才是 100% 的最佳解决方案),您能否编辑 nginx 文件以在升级前临时修复此问题?
步骤如下:

  1. ssh 登录到服务器
  2. cd /var/discourse
  3. ./launcher enter app
  4. cd /etc/nginx/conf.d/
  5. 编辑 discourse.conf
  6. 添加:
location ~* /webhooks/aws {
    deny all;
}
  1. sv restart nginx

我完全打算尽快升级。但我需要大约一周时间来为我们的生产环境做好组织工作,希望在此期间能确保安全。

该行代码无论如何都会执行,因为该参数是用户输入。

这可能有效,但正如您所说,这只是权宜之计。重建将移除该修复,并且测试时要非常小心,因为 nginx 配置很难正确设置。

根据我们安全团队的研判,这不是 Discourse 的漏洞。该漏洞存在于我们的 SNS 消息分发系统(MDS)中(此处无法详述),这意味着它将影响所有使用或依赖 SNS 服务的软件包。

是的,问题确实是由 aws-sdk-sns gem 中的上游问题引起的。但重要的是要认识到,由于 Discourse 使用了该 gem 并将此漏洞暴露给外界,因此即使 Discourse 实例实际上并未使用 AWS SNS 服务,每个 Discourse 实例仍存在漏洞。

因此,虽然这不是一个“Discourse 漏洞”,但它确实是一个“Discourse 中的安全漏洞”。

此漏洞是否已修复?谢谢。

是的,但您需要确保已应用补丁。请阅读该主题。:slight_smile:

一个简单

启动器重建应用

将无法帮助修复此漏洞?

./launcher rebuild app 将对您的 Discourse 实例应用最新更新,并将包含针对此问题的补丁:+1:

官方信息可在此处找到:RCE via malicious SNS subscription payload · Advisory · discourse/discourse · GitHub

听起来好多了 :slight_smile: