【墨菲安全实验室】Spark(3.1.2, 3.2.1, 3.3.0版本)shell命令注入漏洞

简介: 【墨菲安全实验室】Spark(3.1.2, 3.2.1, 3.3.0版本)shell命令注入漏洞

实验室昨天第一时间监测到的0day漏洞,目前已上线检测


漏洞描述


Spark 是用于大规模数据处理的统一分析引擎。

由于 Hadoop 中"org.apache.hadoop.fs.FileUtill"类的“unTar”中针对 tar 文件的处理调了系统命令去解压,造成了 shell 命令注入的风险。


攻击者可以通过该漏洞实现任意命令执行。

影响产品:Apache spark

发现时间:2022-03-24 11:12:38

发现方式:墨菲安全实验室情报预警监控

组件名称:org.apache.spark:spark-core

影响版本:3.1.2, 3.2.1, 3.3.0

缺陷类型:shell命令注入

缺陷评级:高危

墨菲安全实验室于3月24日监测发现spark存在shell命令注入漏洞,已第一时间报送CNVD。


漏洞分析


在spark 3.1.2, 3.2.1, 3.3.0版本的 core/src/main/scala/org/apache/spark/util/Utils.scala 代码中调用了FileUtil.unTar方法对tar包进行解压

1.png

FileUtil.unTar方法在非windows的环境中调用了unTarUsingTar方法

image.png

Spark中调用的unTarUsingTar方法为hadoop中的hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileUtil.java,其对文件名拼接之后通过tar命令进行解压,在处理过程中未对文件名进行转义。

1.png


处置建议


官方已发布补丁,参考链接:https://github.com/apache/spark/commit/057c051285ec32c665fb458d0670c1c16ba536b2


墨菲安全已于昨天第一时间将漏洞上报CNVD,并同步上线了检测能力,目前墨菲安全开源版及企业版已支持检测,欢迎大家免费使用。

开源地址:https://github.com/murphysecurity

产品官网:https://www.murphysec.com/(限时开放注册)


参考链接


https://github.com/apache/spark/commit/057c051285ec32c665fb458d0670c1c16ba536b2

https://issues.apache.org/jira/browse/SPARK-38631

https://github.com/apache/hadoop/blob/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileUtil.java#L892

https://github.com/apache/hadoop/commit/cae749b076f35f0be13a926ee8cfbb7ce4402746

相关文章
|
存储 Shell Linux
Linux编写一个极简版本的Shell
Linux编写一个极简版本的Shell
228 0
|
Java Shell 分布式数据库
【大数据技术Hadoop+Spark】HBase数据模型、Shell操作、Java API示例程序讲解(附源码 超详细)
【大数据技术Hadoop+Spark】HBase数据模型、Shell操作、Java API示例程序讲解(附源码 超详细)
566 0
|
分布式计算 Java 大数据
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
1459 0
|
关系型数据库 MySQL Shell
备份 MySQL 的 shell 脚本(mysqldump版本)
【4月更文挑战第28天】
325 0
|
分布式计算 Java Scala
spark 与 scala 的对应版本查看、在idea中maven版本不要选择17,弄了好久,换成11就可以啦
spark 与 scala 的对应版本查看、.在idea中maven版本不要选择17,弄了好久,换成11就可以啦
1120 119
|
分布式计算 Java Shell
虚拟机启动spark命令 - 蓝易云
请记住,你需要根据你的实际情况替换 `/path/to/spark`和 `<master-url>`。
608 2
|
Kubernetes Shell 网络安全
Shell脚本快速部署Kubernetes(K8S v1.1版本)集群系统
Shell脚本快速部署Kubernetes(K8S v1.1版本)集群系统
|
数据采集 分布式计算 Linux
Spark实时(数据采集)项目小知识点--sed -i命令详解及入门攻略
Spark实时(数据采集)项目小知识点--sed -i命令详解及入门攻略
451 0
|
安全 Shell 网络安全
远程登录安全连接协议SSH(Secure Shell)
SSH(Secure Shell)协议是一种用于在不安全网络上提供安全远程登录、命令执行和数据传输的加密网络协议,通过公钥加密和身份验证技术确保通信的安全性和隐私性。
1113 0
|
Shell
shell脚本之判断当前内核主版本是否为3,且次版本是否大于10
shell脚本之判断当前内核主版本是否为3,且次版本是否大于10
296 0