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

相关推荐
lang201509282 小时前
Apache Ignite 的对等类加载(Peer Class Loading, P2P Class Loading)机制
apache·ignite
chen_note3 小时前
LAMP及其环境的部署搭建
linux·运维·mysql·php·apache·lamp·phpmyadmin
lang201509284 小时前
Apache Ignite 与 Spring Boot 集成
spring boot·后端·apache·ignite
lang201509284 小时前
如何使用 Apache Ignite 作为 Spring 框架的缓存(Spring Cache)后端
spring·缓存·apache·ignite
lang201509287 小时前
Apache Ignite 的监控与指标(Monitoring and Metrics)
apache·ignite
lang2015092812 小时前
Apache Ignite 集群状态(Cluster States)
apache·ignite
谈不譚网安16 小时前
Apache HTTP Server 2.4.50 路径穿越漏洞(CVE-2021-42013)
网络协议·http·apache
lang2015092817 小时前
Apache Ignite 的分布式锁Distributed Locks的介绍
apache·ignite
lang201509281 天前
关于 Apache Ignite 中 Job 调度(Job Scheduling)与冲突控制(Collision Control) 的机制说明
apache·ignite
时序数据说1 天前
分布式时序数据库的特点解析
大数据·数据库·分布式·物联网·时序数据库·iotdb