Voltar para o Labs
Alerta de Segurança

CVE-2021-34371

Sobre

O Neo4j até a 3.4.18 (com o shell server habilitado) expõe um serviço RMI que desserializa objetos Java arbitrariamente, por exemplo, por meio de setSessionVariable. Um atacante pode abusar disso para execução remota de código porque há dependências com gadget chains exploráveis.

Fraqueza (CWE):CWE-502

Análise do analista Rainforest

O Neo4j com o shell server habilitado expõe um serviço RMI que desserializa quaisquer objetos Java arbitrários que lhe sejam entregues, por exemplo por meio de setSessionVariable. Essa é a clássica armadilha de desserialização insegura: como existem gadget chains exploráveis nas dependências, um atacante que consiga alcançar a porta RMI envia um payload serializado malicioso e obtém execução remota de código no host do banco de dados. Não autenticado, remoto, sem interação — a desserialização é o exploit por inteiro.

Bugs de desserialização Java são uma classe de ataque madura e bem instrumentada; payloads de gadget chain prontos existem e são reutilizados, de modo que a transformação em arma é rápida assim que um listener alcançável é encontrado. A pré-condição crítica, e é uma pré-condição real, é que o shell server precisa estar habilitado e sua porta RMI acessível. Isso reduz consideravelmente a exposição — muitas implantações não o executam —, mas qualquer instância que o faça, com a porta em uma rede acessível, é um alvo direto de RCE para qualquer um que esteja varrendo em busca de serviços RMI expostos.

Para nós, isto é mais uma caça por alcançabilidade e configuração do que uma varredura de versão. Identificaríamos instâncias do Neo4j na 3.4.18 ou anteriores e, então, verificaríamos as duas coisas que de fato a condicionam: o shell server está habilitado e essa porta RMI está exposta além do localhost ou de um segmento confiável? Um listener exposto é uma emergência; um shell server desabilitado ou uma porta atrás de firewall derrubam a mesma versão para bem longe no topo da lista. Bloquear a porta RMI é um patch virtual imediato onde a atualização está atrasada.

Referências

CVEs Relacionadas

Perguntas frequentes

O que é CVE-2021-34371?

O Neo4j até a 3.4.18 (com o shell server habilitado) expõe um serviço RMI que desserializa objetos Java arbitrariamente, por exemplo, por meio de setSessionVariable. Um atacante pode abusar disso para execução remota de código porque há dependências com gadget chains exploráveis.

Qual a gravidade de CVE-2021-34371?

CVE-2021-34371 tem pontuação base CVSS 3.1 de 9.8, classificada como critical. No Rainforest Risk Index — que pondera a gravidade junto com a facilidade de alcançar a falha e a amplitude do impacto — a nota é 99 de 100, na faixa crítico.

Como CVE-2021-34371 é explorada?

Segundo o vetor CVSS (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H): vetor de ataque Rede, complexidade de ataque Baixa, privilégios necessários Nenhum, interação do usuário Nenhuma. Impacto em confidencialidade Alto, integridade Alto e disponibilidade Alto.

Quais produtos são afetados por CVE-2021-34371?

Os avisos públicos listam como afetados: neo4j. Consulte as referências desta página para as versões exatas confirmadas por cada fornecedor.

Como corrigir CVE-2021-34371?

Aplique a correção publicada pelo fornecedor — as referências desta página levam aos avisos e patches originais. Quando não for possível corrigir de imediato, reduza a exposição do componente afetado e monitore tentativas de exploração. Clientes Rainforest recebem esta vulnerabilidade correlacionada aos próprios ativos e priorizada pela exposição real, não apenas pela nota.

Potencialize sua estratégia de segurança com a Rainforest

Descubra vulnerabilidades cedo, priorize ameaças críticas e proteja o que realmente importa. A Rainforest simplifica suas operações de segurança, economizando tempo e reduzindo custos, para você focar no que move o seu negócio.

Compartilhar:LinkedInX Email