0x01 漏洞介绍
Apache RocketMQ是一款开源的分布式消息和流处理平台,提供了高效、可靠、可扩展的低延迟消息和流数据处理能力,广泛用于异步通信、应用解耦、系统集成以及大数据、实时计算等场景。
漏洞的官方描述为当RocketMQ多个组件,包括NameServer、Broker和Controller,都暴露在外网,并且缺乏有效的身份认证机制,那么攻击者可以利用更新配置功能,以RocketMQ运行的系统用户身份执行命令。
0x02 漏洞影响版本
<RocketMQ 4.9.6
<RocketMQ 5.1.1
0x03 漏洞复现
本地搭建环境
docker pull apache/rocketmq:4.9.1 docker pull
apacherocketmq/rocketmq-console:2.0.0
启动broker、namesrv、console
启动namesrv
docker run -dit -p 9876:9876 -p 10909:10909 -e
“MAX_POSSIBLE_HEAP=100000000” apache/rocketmq:4.9.1 sh mqnamesrv
/bin/bash
启动broker
docker run -dit -p 10909:10909 -p 10911:10911 --name mqbroker
–restart=always --link mqsrv:namesrv -e “NAMESRV_ADDR=namesrv:9876” -e “MAX_POSSIBLE_HEAP=200000000” apache/rocketmq:4.9.1 sh mqbroker -c /home/rocketmq/rocketmq-4.9.1/conf/broker.conf
启动console
docker run -dit --name mqconsole -p 8080:8080 -e
“JAVA_OPTS=-Drocketmq.config.namesrvAddr=mqsrv:9876
-Drocketmq.config.isVIPChannel=false” apacherocketmq/rocketmq-console:2.0.0
注意broker、console启动时会指定关联namesrv的地址
Github参考链接
修改props.setProperty,执行命令
x已集成漏洞poc
0x04 修复方案
使用RocketMQ 4.x版本的用户升级至4.9.6或以上版本。
使用RocketMQ 5.x版本的用户升级至5.1.1或以上版本。
《网络安全法》第十二条 第二款 任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得危害网络安全,不得利用网络从事危害国家安全、荣誉和利益,煽动颠覆国家政权、推翻社会主义制度,煽动分裂国家、破坏国家统一,宣扬恐怖主义、极端主义,宣扬民族仇恨、民族歧视,传播暴力、淫秽色情信息,编造、传播虚假信息扰乱经济秩序和社会秩序,以及侵害他人名誉、隐私、知识产权和其他合法权益等活动。
《国家安全法》第二十五条 国家建设网络与信息安全保障体系,提升网络与信息安全保护能力,加强网络和信息技术的创新研究和开发应用,实现网络和信息核心技术、关键基础设施和重要领域信息系统及数据的安全可控;加强网络管理,防范、制止和依法惩治网络攻击、网络入侵、网络窃密、散布违法有害信息等网络违法犯罪行为,维护国家网络空间主权、安全和发展利益。
《数据安全法》第四十五条 第二款 违反国家核心数据管理制度,危害国家主权、安全和发展利益的,由有关主管部门处二百万元以上一千万元以下罚款,并根据情况责令暂停相关业务、停业整顿、吊销相关业务许可证或者吊销营业执照;构成犯罪的,依法追究刑事责任。
Reference
https://www.cve.org/CVERecord?id=CVE-2023-33246