SaltStack 远程命令执行漏洞分析(CVE-2020-16846、17490、25592)

X0_0X 2020-11-09
专栏 - 事件 发布于 2020-11-09 17:15:14 阅读 109 评论 0

漏洞描述

2020年11月4日,SaltStack 官方发布了一则安全更新公告,涉及3个 CVE 漏洞。

CVE-2020-16846:

未授权账户可通过 Salt API 的 SSH 功能连接到客户端,进而利用 shell 功能执行任意命令。此漏洞影响所有开启 Salt API 的用户。

CVE-2020-17490:

当应用在 TLS 执行模块中使用了 create_ca, create_csr, 和 create_self_signed_cert 函数时,存在此漏洞的系统将无法保证 key以正确的权限被创建。

CVE-2020-25592:

由于 Salt-netapi未能正确验证 eauth 凭证和令牌,导致攻击者能够绕过身份验证,通过salt-ssh 连接目标主机。此漏洞同样影响所有开启 Salt API 的用户。

风险等级

  • CVE-2020-16846:严重

  • CVE-2020-17490:低危

  • CVE-2020-25592:严重

漏洞详情

从 CVE-2020-16846 和 CVE-2020-17490 补丁的 commit 来看,SaltStack 之前在处理 SSH 功能时,需执行 ssh-keygen 系统命令。

由于此命令中的部分参数,是把用户从前端接口传入的代码直接拼接到cmd 中执行,因此攻击者便可以通过传入形如 aaaa &attach_cmd 的代码参数造成任意命令执行。

从 CVE-2020-25592 模块的 commit 中可以看到,NetapiClient 类在处理 SSH 执行命令时并未进行身份校验,这会导致攻击者可以直接通过NetapiClient 提供的 API 进行 SSH 连接。

分析后,构造 exp 成功复现。

产品侧解决方案

针对上述三个漏洞,阿里云 WAF 已默认更新防御策略,用户无需操作即可享受防护。

参考链接

https://www.saltstack.com/blog/on-november...

https://gitlab.com/saltstack/open/salt-pat...

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!
请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!