长亭百川云 - 文章详情

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

自在安全

56

2024-07-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` ,最后执行语句变为:

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

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

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

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2