CVE-2022-33891 Apache Spark shell 命令注入漏洞
2022-7-19 20:56:12 Author: mp.weixin.qq.com(查看原文) 阅读量:13 收藏

★且听安全-点关注,不迷路!

★漏洞空间站-优质漏洞资源和小伙伴聚集地!

漏洞信息

近日监测到 Apache Spark 官方通报了一个命令注入漏洞 CVE-2022-33891:

Apache Spark 支持启动 ACL 来为 Web UI 访问提供身份验证,当 ACL 启动时可以通过构造特殊请求用户名导致 RCE ,漏洞影响版本:

  •  versions 3.0.3 and earlier

  •  versions 3.1.1 to 3.1.2

  •  and versions 3.2.0 to 3.2.1

漏洞分析

下载`spark-3.2.1-bin-hadoop2.7.tgz` ,并配置启动 ACL 和远程调试:

分析前先查看一下补丁:

对 `ShellBasedGroupsMappingProvider#getUnixGroups` 函数代码进行了修改。

查询官方文档可知,Apache Spark 启动 ACL 后, Web UI 的 HTTP 请求需要通过 `HttpSecurityFilter` 全局过滤器的鉴权处理,定位 `HttpSecurityFilter#doFilter` :

提取 GET 参数 `doAs` 赋值给 `effectiveUser` 变量,然后进入 `checkUIViewPermissions` 函数:

跟进 `isUserInACL` :

这里正好进入了补丁修复的 `ShellBasedGroupsMappingProvider#getUnixGroups` 函数:

跟进 `executeAndGetOutput` 函数:

直接将用户名拼接进入命令执行参数中,导致出现了 RCE 漏洞。

漏洞复现

利用反斜杠直接进行命令注入,结果如下:

修复方式

前面已经提到,新版本更新了 `ShellBasedGroupsMappingProvider` ,去掉了 `bash` 的直接调用,先后执行两次 `Process#start` ,最后执行语句变为:

由于传播、利用此文档提供的信息而造成任何直接或间接的后果及损害,均由使用本人负责,且听安全及文章作者不为此承担任何责任。

★且听安全-点关注,不迷路!

★漏洞空间站-优质漏洞资源和小伙伴聚集地!


文章来源: https://mp.weixin.qq.com/s?__biz=Mzg3MTU0MjkwNw==&mid=2247491343&idx=1&sn=a44c414c957d1436017eb4801dcfae5b&chksm=cefda61bf98a2f0dc68d813984d35f5f253ded24c36e90f5c1eae60375863c723b1400cc8c52&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh