CVE-2023-50780: MBeans Perigosos Acessíveis via API Jolokia no Apache ActiveMQ Artemis
Ao listar e inspecionar os MBeans expostos pela API Jolokia em http://127.0.0.1:8161/console/jolokia, os seguintes vetores de ataque foram identificados:
- Escrita Arbitrária de Arquivos usando Log4J resultando indiretamente em Execução Remota de Código
- Leitura Arbitrária de Arquivos usando Log4J
- DoS usando MBeans do Artemis Broker
Esta vulnerabilidade pode ser explorada por um atacante local que conheça as credenciais básicas de autenticação usadas pela interface web do Artemis.
Nota: Se o servidor estiver configurado com "--allow-anonymous", então qualquer combinação não nula de usuário-senha pode ser usada para autenticar.
Divulgação do Fornecedor:
A divulgação do fornecedor para esta vulnerabilidade pode ser encontrada aqui.
Requisitos:
Esta vulnerabilidade requer:
- Credenciais válidas para usuário com função "admin" (se a autenticação for necessária)
Prova de Conceito:
Como múltiplos vetores de ataque foram identificados, você pode encontrar mais detalhes e os processos de exploração de interesse em um ou mais dos seguintes PDFs:
- O relatório inicial que foi enviado ao fornecedor: Apache Artemis - CVE-2023-50780 - Initial Report.pdf. O vetor de RCE requer:
- A capacidade de sobrescrever o arquivo "broker.xml" como o usuário que executa o servidor web
- Reiniciar todo o aplicativo Artemis para que as alterações no "broker.xml" tenham efeito (embora possamos usar a função "forceFailover()" para fechar o aplicativo, ainda precisaremos da interação de um administrador para reiniciá-lo)
- Apache Artemis - CVE-2023-50780 - WAR + Restart Vector.pdf. O vetor de RCE requer:
- A capacidade de sobrescrever um dos arquivos WAR carregados pelo Artemis (por exemplo, "activemq-branding.war", "artemis-plugin.war" ou "console.war") como o usuário que executa o servidor web
- Reiniciar o servidor web Jetty embutido através da função "restartEmbeddedWebServer()" (nenhuma interação do usuário é necessária, pois essa função pode ser chamada diretamente pelo atacante através do MBean do Artemis Broker)
- Apache Artemis - CVE-2023-50780 - JAR + jvmtiAgentLoad.pdf. O vetor de RCE requer:
- A capacidade de escrever arquivos em algum lugar do sistema de arquivos (por exemplo, "/tmp", "/dev/shm", "C:\Windows\Public", etc.) e usar o Log4J para escrever um JAR arbitrário nesse local
- Carregar o respectivo JAR e obter RCE através da função "jvmtiAgentLoad([Ljava.lang.String;)"
Recursos Adicionais:
Blogpost por Xu "pyn3rd "Yuanzhen explicando como uma escrita arbitrária de JAR + Jolokia pode ser usada para obter RCE
Linha do tempo:
- Esta vulnerabilidade foi inicialmente reportada a [email protected] em 14-Fev-2023
- A Apache divulga o CVE-2023-50780 em 14-Out-2024
- Divulgados publicamente o relatório inicial e outros vetores em 18-Dez-2024