vlambda博客
学习文章列表

漏洞安全公告|SaltStack 远程命令执行漏洞(CVE-2020-11651/CVE-2020-11652)






漏洞名称:SaltStack 远程命令执行漏洞

(CVE-2020-11651/CVE-2020-11652)

威胁等级:高危

影响范围:

SaltStack < 2019.2.4

SaltStack < 3000.2

漏洞类型:认证绕过导致命令执行

利用难度:容易






漏洞分析


1 SaltStack组件介绍

SaltStack是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,基于Python语言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)构建。通过部署SaltStack,我们可以在成千万台服务器上做到批量执行命令,根据不同业务进行配置集中化管理、分发文件、采集服务器数据、操作系统基础及软件包管理等,SaltStack是运维人员提高工作效率、规范业务配置与操作的利器。


2 漏洞描述

近日,SaltStack发布了3000.2和2019.2.4版本,修复了这些漏洞(其中有一个CVSS等级为10.0的漏洞)。国外安全团队在披露SaltStack管理框架的多个安全漏洞时(CVE-2020-11651/CVE-2020-11652)认为恶意攻击者仅仅使用这类平台的salt/minion关系就能导致在数百个服务器上挖掘加密货币,或者安装后门,导致数据被盗或勒索。
在披露详情中描述这些漏洞使攻击者可以连接到“请求服务器”端口,以绕过所有身份验证和授权控制并发布任意控制指令,在“主”服务器文件系统上的任何位置读写文件,并窃取所用的密钥以root身份向主服务器进行身份验证。导致完全以root用户身份远程执行主命令和与其连接的所有从主机,其中 CVE ID CVE-2020-11651 CVE-2020-11652的漏洞属于两个不同的类别。一个是身份验证绕过,其中功能无意间暴露给未经身份验证的网络客户端,另一个是目录遍历,其中未正确过滤不受信任的输入(即网络请求中的参数),从而可以不受限制地访问主服务器的整个文件系统。

漏洞名称

披露信息

身份验证绕过漏洞(CVE-2020-11651)

ClearFuncs类处理未经身份验证的请求,并且无意中公开了_send_pub()方法,该方法可用于直接在主发布服务器上对消息进行排队。此类消息可用于触发从主机以root身份运行任意命令。

ClearFuncs类还公开了_prep_auth_info()方法,该方法返回用于验证主服务器上本地root用户命令的“根密钥”。 然后可以使用此“根密钥”在主服务器上远程调用管理命令。 这种无意的暴露为远程未经身份验证的攻击者提供了与管理员相同的根访问权限。

目录遍历漏洞( CVE-2020-11652)

wheel模块包含用于在特定目录路径下读取和写入文件的命令。这些函数的输入与目标目录连接在一起,生成的路径没有规范化,从而绕过了预期的路径限制。

salt.tokens.localfs类的get_token()方法(由ClearFuncs类暴露于未经身份验证的请求)无法清理令牌输入参数,该参数随后用作文件名,从而允许插入“ ..”路径元素和从而读取预期目录之外的文件。唯一的限制是必须使用 salt.payload.Serial.loads()对文件进行反序列化 。



影响范围

目前受影响的SaltStack版本:
SaltStack < 2019.2.4
SaltStack < 3000.2


修复建议

1、SaltStack 官方已发布新版本修复上述漏洞,请升级至SaltStack 2019.2.4 及 3000.2版本;
2、配置策略,禁止 Salt Master的监听端口(默认4505 和 4506)对公网开放或只允许可信IP访问监听端口;


参考链接


https://labs.f-secure.com/advisories/saltstack-authorization-bypass


时间轴


2020/4/21



SaltStack发布了解决这些问题的版本3000.2和2019.2.4。

2020/4/22



深信服千里目实验室发布提示。    



点击阅读原文,及时关注深信服智安全Wiki平台,查询漏洞的解决方案(需登录)~



文章推荐:





关注我们

解锁更多精彩内容

深信服千里目安全实验室