Apache RocketMQ是一款开源的分布式消息和流处理平台,提供了高效、可靠、可扩展的低延迟消息和流数据处理能力,广泛用于异步通信、应用解耦、系统集成以及大数据、实时计算等场景。
近期,长亭科技监测到RocketMQ发布新版本修复了一个远程命令执行漏洞(CVE-2023-33246)。
经过分析漏洞后,发现公网仍有较多系统未修复漏洞。应急团队根据该漏洞的原理,已经编写了X-POC远程检测工具和牧云本地检测工具,并已向公众开放下载使用。
考虑到检测此漏洞可能会对RocketMQ服务的可用性造成破坏,本次X-POC的远程检测方法专注于探查RocketMQ Broker组件可能存在的未授权访问漏洞,这是实现远程命令执行的前提条件,避免了对服务可用性的影响。同时,RocketMQ Broker组件未授权访问可导致信息泄露、拒绝服务等危害,应予以重视。
漏洞的官方描述为当RocketMQ多个组件,包括NameServer、Broker和Controller,都暴露在外网,并且缺乏有效的身份认证机制,那么攻击者可以利用更新配置功能,以RocketMQ运行的系统用户身份执行命令。
经过深入分析,长亭科技应急响应实验室发现,官方的漏洞描述存在不准确之处。实际上,只要能访问到Broker服务且该服务未开启身份认证,就可实现远程命令执行,无需其他条件。
1xpoc -r 99 目标IP:10911
其中99为本次应急PoC的编号,10911为 RocketMQ 的默认端口,可根据具体端口开放情况进行修改。
或通过以下命令进行端口扫描并检测:
1xpoc -r 99 -p 1-65535 目标IP
该命令可检出 RocketMQ Broker存在的未授权访问情况。
在本地主机上执行以下命令即可扫描:
1./apache_rocketmq_cve_2023_33246_scanner_linux_amd64
复制链接, 前往 CT Stack 安全社区下载牧云本地检测工具:
https://stack.chaitin.com/tool/detail?id=1172
<RocketMQ 4.9.6
<RocketMQ 5.1.1
在conf/broker.conf中针对Broker服务添加身份认证,确保只有授权用户才能访问和操作RocketMQ的消息队列。
使用RocketMQ 4.x版本的用户升级至4.9.6或以上版本。
使用RocketMQ 5.x版本的用户升级至5.1.1或以上版本。