
Exploit para CVE-2023-33246 direcionado ao Apache RocketMQ 5.1.0, permitindo execução remota de código por meio de injeção de pacotes maliciosos no endpoint de atualização de configuração do broker.
Apache RocketMQ é uma plataforma distribuída de mensageria e streaming com baixa latência, alto desempenho e confiabilidade, capacidade em nível de trilhões e escalabilidade flexível.
Ele oferece uma variedade de recursos:
Este parágrafo orienta você pelas etapas de instalação do RocketMQ de diferentes maneiras. Para desenvolvimento e testes locais, apenas uma instância será criada para cada componente.
O RocketMQ executa em todos os principais sistemas operacionais e requer apenas um Java JDK versão 8 ou superior instalado.
Para verificar, execute java -version:
$ java -version
java version "1.8.0_121"
Para usuários Windows, clique aqui para baixar a versão binária 4.9.4 do RocketMQ,
descompacte-a em seu disco local, como D:\rocketmq.
Para usuários de macOS e Linux, execute os seguintes comandos:
# Download release from the Apache mirror
$ wget https://archive.apache.org/dist/rocketmq/4.9.4/rocketmq-all-4.9.4-bin-release.zip
# Unpack the release
$ unzip rocketmq-all-4.9.4-bin-release.zip
Prepare um terminal e acesse o diretório bin extraído:
$ cd rocketmq-4.9.4/bin
1) Iniciar o NameServer
O NameServer ficará escutando em 0.0.0.0:9876; certifique-se de que a porta não esteja sendo usada por outros na máquina local e, em seguida, faça o seguinte.
Para usuários de macOS e Linux:
### start Name Server
$ nohup sh mqnamesrv &
### check whether Name Server is successfully started
$ tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...
Para usuários Windows, você precisa definir as variáveis de ambiente primeiro:
ROCKETMQ_HOME="D:\rocketmq".Em seguida, mude para o diretório do rocketmq, digite e execute:
$ mqnamesrv.cmd
The Name Server boot success...
2) Iniciar o Broker
Para usuários de macOS e Linux:
### start Broker
$ nohup sh bin/mqbroker -n localhost:9876 &
### check whether Broker is successfully started, eg: Broker's IP is 192.168.1.2, Broker's name is broker-a
$ tail -f ~/logs/rocketmqlogs/broker.log
The broker[broker-a, 192.169.1.2:10911] boot success...
Para usuários Windows:
$ mqbroker.cmd -n localhost:9876
The broker[broker-a, 192.169.1.2:10911] boot success...
Você pode executar o RocketMQ em sua própria máquina usando contêineres Docker;
a rede host será usada para expor a porta de escuta no contêiner.
1) Iniciar o NameServer
$ docker run -it --net=host apache/rocketmq ./mqnamesrv
2) Iniciar o Broker
$ docker run -it --net=host --mount source=/tmp/store,target=/home/rocketmq/store apache/rocketmq ./mqbroker -n localhost:9876
Você também pode executar um cluster RocketMQ em um cluster Kubernetes usando o RocketMQ Operator.
Antes de suas operações, certifique-se de que o kubectl e o arquivo kubeconfig correspondente estejam instalados em sua máquina.
1) Instalar CRDs
### install CRDs
$ git clone https://github.com/apache/rocketmq-operator
$ cd rocketmq-operator && make deploy
### check whether CRDs is successfully installed
$ kubectl get crd | grep rocketmq.apache.org
brokers.rocketmq.apache.org 2022-05-12T09:23:18Z
consoles.rocketmq.apache.org 2022-05-12T09:23:19Z
nameservices.rocketmq.apache.org 2022-05-12T09:23:18Z
topictransfers.rocketmq.apache.org 2022-05-12T09:23:19Z
### check whether operator is running
$ kubectl get pods | grep rocketmq-operator
rocketmq-operator-6f65c77c49-8hwmj 1/1 Running 0 93s
2) Criar a instância do cluster
### create RocketMQ cluster resource
$ cd example && kubectl create -f rocketmq_v1alpha1_rocketmq_cluster.yaml
### check whether cluster resources is running
$ kubectl get sts
NAME READY AGE
broker-0-master 1/1 107m
broker-0-replica-1 1/1 107m
name-service 1/1 107m
Sempre damos boas-vindas a novas contribuições, sejam para limpezas triviais, grandes novos recursos ou outras recompensas materiais; mais detalhes veja aqui.
Apache License, Versão 2.0 Copyright (C) Apache Software Foundation
Esta distribuição inclui software criptográfico. O país onde você reside atualmente pode ter restrições sobre a importação, posse, uso e/ou reexportação para outro país de software de criptografia. ANTES de usar qualquer software de criptografia, verifique as leis, regulamentos e políticas do seu país sobre a importação, posse, uso e reexportação de software de criptografia, para verificar se isso é permitido. Consulte http://www.wassenaar.org/ para obter mais informações.
O Departamento de Comércio do Governo dos EUA, Bureau of Industry and Security (BIS), classificou este software como Export Commodity Control Number (ECCN) 5D002.C.1, que inclui software de segurança da informação que usa ou executa funções criptográficas com algoritmos assimétricos. A forma e o modo desta distribuição da Apache Software Foundation a tornam elegível para exportação sob a exceção License Exception ENC Technology Software Unrestricted (TSU) (consulte os BIS Export Administration Regulations, Seção 740.13), tanto para código objeto quanto para código fonte.
A seguir, são fornecidos mais detalhes sobre o software criptográfico incluído:
Este software usa o Apache Commons Crypto (https://commons.apache.org/proper/commons-crypto/) para suportar autenticação e criptografia e descriptografia de dados enviados pela rede entre serviços.