【漏洞复现】CVE-2022-24697

ops/2024/11/28 8:25:57/

漏洞信息

NVD - CVE-2022-24697

Kylin’s cube designer function has a command injection vulnerability when overwriting system parameters in the configuration overwrites menu. RCE can be implemented by closing the single quotation marks around the parameter value of “-- conf=” to inject any operating system command into the command line parameters. This vulnerability affects Kylin 2 version 2.6.5 and earlier, Kylin 3 version 3.1.2 and earlier, and Kylin 4 version 4.0.1 and earlier.

背景介绍

Kylin is a high concurrency, high performance and intelligent OLAP engine that provides low-cost and ultimate data analytics experience.

• 主页:https://kylin.apache.org/

• 源码:https://github.com/apache/kylin

环境搭建

$ docker pull apachekylin/apache-kylin-standalone:4.0.0
$ docker run -d \
-m 8G \
-p 7070:7070 \
-p 8088:8088 \
-p 50070:50070 \
-p 8032:8032 \
-p 8042:8042 \
-p 2181:2181 \
-p 5005:5005 \
apachekylin/apache-kylin-standalone:4.0.0

Kylin Web UI: http://127.0.0.1:7070/kylin/login

默认账号:admin、默认密码:KYLIN

【环境搭建】Apache Kylin 各个版本Docker搭建汇总-CSDN博客

【环境搭建】使用Dockerfile构建容器搭建Kylin特定版本-CSDN博客

漏洞复现

参考:kylin CVE-2022-24697 & CVE-2022-43396 - 先知社区

选择自带的项目learn_kylin,进入cube页面:

在这里插入图片描述

编辑kylin_sales_cube,点击Configuration Overwrites,新建一行数据,键值对如下所示,包含了恶意命令拼接:

kylin.engine.spark-conf.spark.driver.memory512M' `touch Mitch311` '

点击 Next 并 Save:

在这里插入图片描述

按照如下步骤进行build,日期随便选,最后Submit:

在这里插入图片描述

进入docker容器,可以看到恶意命令已经被执行:

$ docker exec -it <container ID> /bin/bash
$ ll

在这里插入图片描述

漏洞分析

进入runSparkSubmit方法内可以找到getSparkConfigOverride方法:
在这里插入图片描述

它调用了父类的同名方法:

在这里插入图片描述

查看super.getSparkConfigOverride(config),首先通过 config.getSparkConfigOverride() 方法获取Map<String, String> sparkConfigOverride 这个字典用来查询配置的键值对,因为可以看到后续会检查键名spark.driver.memory是否存在:

在这里插入图片描述

config.getSparkConfigOverride()方法,从全局配置属性中(包括cube配置重写的属性)返回键值开头为kylin.engine.spark-conf.的所有属性:

在这里插入图片描述

修复方案

补丁:https://github.com/apache/kylin/pull/1811/files

补丁调用了 ParameterFilter.checkSparkConf 方法检查所有配置属性键值对:

在这里插入图片描述

过滤了一些危险字符:

在这里插入图片描述


http://www.ppmy.cn/ops/137307.html

相关文章

理解并使用Linux内核XArray

理解并使用Linux内核XArray 1. 引言 大家好&#xff0c;今天咱们来聊聊Linux内核中的一个强大工具——XArray。如果你对数据结构感兴趣&#xff0c;或者正在开发内核模块&#xff0c;那么这篇文章绝对适合你。我会尽量用轻松幽默的方式带你走进XArray的世界。 2. XArray简介…

java——spring中事务怎么实现的?原理是什么?

在Spring框架中&#xff0c;事务管理是一个核心功能&#xff0c;它提供了两种主要的事务实现方式&#xff1a;声明式事务和编程式事务。下面分别介绍这两种实现方式及其底层原理。 一、Spring事务的实现方式 声明式事务 声明式事务管理通过注解或XML配置的方式&#xff0c;将事…

第十三章 使用 DHCP 动态管理主机地址

1. 动态主机配置协议 动态主机配置协议&#xff08;DHCP&#xff09;是一种基于 UDP 协议且仅限于在局域网内部使用的网络协议&#xff0c;主要用于大型的局域网环境或者存在较多移动办公设备的局域网环境中&#xff0c;用途是为局域网内部的设备或网络供应商自动分配 IP 地…

【Leetcode Top 100】240. 搜索二维矩阵 II

问题背景 编写一个高效的算法来搜索 m n m \times n mn矩阵 m a t r i x matrix matrix中的一个目标值 t a r g e t target target。该矩阵具有以下特性&#xff1a; 每行的元素从左到右升序排列。每列的元素从上到下升序排列。 数据约束 m m a t r i x . l e n g t h m …

HarmonyOS4+NEXT星河版入门与项目实战(22)------动画(属性动画与显示动画)

文章目录 1、属性动画图解2、案例实现-小鱼移动游戏1、代码实现2、代码解释3、资源图片4、实现效果3、显示动画4、案例修改-显示动画5、总结1、属性动画图解 这里我们用一张完整的图来汇整属性动画的用法格式和使用的主要属性范围,如下所示: 2、案例实现-小鱼移动游戏 1、代…

量化交易系统开发-实时行情自动化交易-4.4.1.做市策略实现

19年创业做过一年的量化交易但没有成功&#xff0c;作为交易系统的开发人员积累了一些经验&#xff0c;最近想重新研究交易系统&#xff0c;一边整理一边写出来一些思考供大家参考&#xff0c;也希望跟做量化的朋友有更多的交流和合作。 接下来继续说说做市策略实现。 做市策…

一键AI换脸软件,支持表情控制,唇形同步Facefusion-3.0.0发布!支持N卡和CPU,一键启动包

嗨,小伙伴们!还记得小编之前介绍的FaceFusion 2.6.1吗?今天给大家带来超级exciting的消息 —— FaceFusion 3.0.0闪亮登场啦! &#x1f31f; 3.0.0版本更新 &#x1f3d7;️ 全面重构:修复了不少小虫子,运行更稳定,再也不怕突然罢工啦! &#x1f600; Live Portrait功能:新增…

QT 实现组织树状图

1.实现效果 在Qt中使用QGraphicsItem和QGraphicsScene实现树状图,你需要创建自定义的QGraphicsItem类来表示树的节点,并管理它们的位置和连接,以下是实现效果图。 2.实现思路 可以看见,上图所示,我们需要自定义连线类和节点类。 每个节点类Node,需要绘制矩形框体文字…