CVE-2023-46226 Apache iotdb远程代码执行漏洞

项目介绍

Apache IoTDB 是针对时间序列数据收集、存储与分析一体化的数据管理引擎。它具有体量轻、性能高、易使用的特点,完美对接 Hadoop 与 Spark 生态,适用于工业物联网应用中海量时间序列数据高速写入和复杂分析查询的需求。

项目地址

https://iotdb.apache.org/

漏洞概述

JEXL是一个表达式语言引擎,全称是Java表达式语言(Java Expression Language),可以在 java 程序中动态地运算一些表达式

在受影响版本中,由于IoTDB通过UDTFJexl.java实现 JEXL 表达式支持。攻击者可以通过配置 UDF,调用 JEXL表达式来执行 JAVA命令,导致存在远程代码执行漏洞。

影响版本

Apache IoTDB<= 1.2.2

环境搭建

1)下载1.2.2版本的IotDB

https://archive.apache.org/dist/iotdb/1.2.2/

2)启动IotDB

sbin\start-standalone.bat

漏洞复现

漏洞分析

Java Expression Language (JEXL) 是一个表达式语言引擎。Apache IoTdb使用JEXL 来扩展 UDF。具体解析位置如下:

获取了sql中的expr参数值,然后调用jexl3库构建script

在probeOutputDataType中最终执行

分析发现,IoTdb没有对该参数进行任何过滤,由于该udf是内置udf,当攻击者具备权限执行sql语句时,可以直接调用,而IoTdb的默认账号密码是root、root,如果未修改账号密码,攻击者将直接控制服务器。

官方直接通过删除了相关udf来修复了该漏洞。

修复方式

参考链接

https://iotdb.apache.org/zh/UserGuide/latest/stage/Operators-Functions/Lambda.html

https://github.com/apache/iotdb/commit/96f2164fe03c07055a42d92049f61adb1cecd3cb

相关推荐
10km37 分钟前
java:Apache Commons Configuration2占位符解析异常的正确解法:${prefix:name:-default}
java·apache·configuration2·变量插值·interpolation
Apache IoTDB1 天前
Apache IoTDB v2.0.1-beta 发布|树、表双模型支持,更灵活更全面!
apache·iotdb
铁头乔2 天前
IoTDB 断电后无法启动 DataNode,日志提示 Meet error while starting up
数据库·开源·时序数据库·iotdb
垚垚 Securify 前沿站2 天前
Apache Logic4j 库反序列化漏洞复现与深度剖析
linux·网络·安全·web安全·系统安全·apache
undo_try2 天前
大数据组件(四)快速入门实时数据湖存储系统Apache Paimon(1)
大数据·flink·apache
花千树-0103 天前
使用 Apache PDFBox 提取 PDF 中的文本和图像
java·pdf·apache·ai编程
百事可乐☆3 天前
uniapp 支付宝小程序自定义导航栏
小程序·uni-app·apache
虎鲸不是鱼4 天前
Win10环境借助DockerDesktop部署大数据时序数据库Apache Druid
大数据·docker·apache·时序数据库·druid
l2xcty4 天前
玄机——第二章 日志分析-apache日志分析
linux·网络安全·apache
SRC_BLUE_174 天前
Apache Struts2 - 任意文件上传漏洞 - CVE-2024-53677
java·struts·apache