【墨菲安全实验室】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

相关文章
|
8天前
|
Java Shell Windows
java Runtime.exec()执行shell/cmd命令:常见的几种陷阱与一种完善实现
java Runtime.exec()执行shell/cmd命令:常见的几种陷阱与一种完善实现
19 1
|
1月前
|
Web App开发 网络协议 Linux
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
这篇文章是关于Linux命令的总结,涵盖了从基础操作到网络配置等多个方面的命令及其使用方法。
64 1
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
|
1月前
|
Shell 知识图谱
Shell printf 命令
10月更文挑战第3天
20 1
|
1月前
|
Shell PHP
Shell echo命令
10月更文挑战第3天
20 0
|
1月前
|
JSON Java Shell
Dockerfile中RUN、CMD、ENTRYPOINT、SHELL命令的区别
理解这些指令的差异和应用场景,有助于构建高效、灵活且易于管理的Docker镜像。在实际应用中,根据需要选择合适的指令,可以有效地控制镜像构建和容器运行的行为。
155 0
|
20天前
|
分布式计算 大数据 Apache
ClickHouse与大数据生态集成:Spark & Flink 实战
【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
55 2
ClickHouse与大数据生态集成:Spark & Flink 实战
|
1月前
|
存储 分布式计算 算法
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
60 0
|
1月前
|
消息中间件 分布式计算 NoSQL
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
40 0
|
1月前
|
消息中间件 存储 分布式计算
大数据-103 Spark Streaming Kafka Offset管理详解 Scala自定义Offset
大数据-103 Spark Streaming Kafka Offset管理详解 Scala自定义Offset
87 0
|
21天前
|
SQL 机器学习/深度学习 分布式计算
Spark快速上手:揭秘大数据处理的高效秘密,让你轻松应对海量数据
【10月更文挑战第25天】本文全面介绍了大数据处理框架 Spark,涵盖其基本概念、安装配置、编程模型及实际应用。Spark 是一个高效的分布式计算平台,支持批处理、实时流处理、SQL 查询和机器学习等任务。通过详细的技术综述和示例代码,帮助读者快速掌握 Spark 的核心技能。
48 6