破绽描绘
Apache Spark 组件存在命令注入破绽的信息,破绽要挟等级:高危。
该破绽是由于 Apache Spark Core 中援用了 Hadoop 里不平安的解压函数 unTar,攻击者可应用该破绽结构歹意数据来执行命令,最终获取效劳器最高权限。
组件引见
Apache Spark 是一种用于大数据工作负载的散布式开源处置系统。它运用内存中缓存和优化的查询执行方式,可针对任何范围的数据停止快速剖析查询。它提供运用 Java、Scala、Python 和 R 言语的开发 API,支持跨多个工作负载重用代码—批处置、交互式查询、实时剖析、机器学习和图形处置等。
应用条件
1、用户认证:暂不肯定
2、前置条件:无
3、触发方式:远程或者本地
影响范围
目前受影响的 Apache Spark 版本:
Apache Spark < 3.1.3
Apache Spark < 3.2.2
环境搭建
https://issues.apache.org/jira/browse/SPARK-38631
下载`spark-3.2.1-bin-hadoop2.7.tgz`,在Ubuntu 20.04中参加远程调试配置并启动`spark-shell`:
默许开启4040端口监听:
破绽剖析
hadoop-common unTar函数
定位`org.apache.hadoop.fs#unTar`:
这里Windows和Linux处置方式不同。破绽出在Linux系统的处置函数`unTarUsingTar`中:
将文件名直接停止拼接然后带入shell执行,存在命令注入的风险。
Spark shell命令注入
定位`Utils.unpack`:
为了便当触发破绽,首先创立如下文件:
查看官方开发文档,找到函数`addArchive`存在解压操作:
执行`scala`命令,在`org.apache.spark.SparkContext#addArchive`触发断点
不断跟到破绽触发点
完成RCE
处理计划
如何检测组件版本
运转 spark-shell 命令,查看输出中的版本信息。
官方修复倡议
当前官方已发布最新版本,倡议受影响的用户及时更新晋级到最新版本。链接如下:
https://spark.apache.org/downloads.html
感谢您的来访,获取更多精彩文章请收藏本站。
![](https://www.gyzsq.com/wp-content/uploads/2022/07/9259adea4619.gif)
1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
3 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
![头像](/wp-content/themes/zibll/img/avatar-default.png)