CVE-2022-33891 Apache Spark shell 命令注入漏洞

渗透技巧 2年前 (2022) admin
784 0 0

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



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


漏洞信息


近日监测到 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` ,最后执行语句变为:




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



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



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

原文始发于微信公众号(且听安全):CVE-2022-33891 Apache Spark shell 命令注入漏洞

版权声明:admin 发表于 2022年7月20日 上午7:31。
转载请注明:CVE-2022-33891 Apache Spark shell 命令注入漏洞 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...