
Воспроизведение эксплойта и PoC для CVE-2023-33246 в Apache RocketMQ, с настройкой локального окружения на базе Docker и выполнением кастомного эксплойта.
CVE-2023-33246 https://github.com/I5N0rth/CVE-2023-33246
# docker pull apache/rocketmq:4.9.1
# docker pull apacherocketmq/rocketmq-console:2.0.0
docker run -dit -p 9876:9876 -p 10909:10909 --name mqsrv -e "MAX_POSSIBLE_HEAP=100000000" apache/rocketmq:4.9.1 sh mqnamesrv /bin/bash
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
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
PS: Обратите внимание, что при запуске broker и console указывается адрес связанного namesrv.
Измените pom.xml, добавив зависимость
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-tools</artifactId>
<version>4.8.0</version>
</dependency>