← voltar
CVE-2022-24706criticalsob ataqueCWE-1188

Remote Code Execution Vulnerability in Packaging

100Vexday Risk Score

Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.

ssvc Actcvss 9.8epss 92%
da publicação à arma15 dias
Publicada no NVD26 de abr.
1ª PoC+15d
metasploit21 de jan.
CISA KEV+121d
probabilidade de exploração
92%top 1% das CVEs
exploração observada
simCISA + VulnCheck
13 exploit(s) público(s)
Ação exigida pela CISAprazo federal: 2022-09-15

Apply updates per vendor instructions.

Resumo

Instalações padrão do Apache CouchDB anteriores à 3.2.2 usavam um cookie Erlang fixo e conhecido publicamente para autenticar comunicação entre nós do cluster. Quem alcança a porta de distribuição Erlang do CouchDB na rede pode usar esse cookie padrão para se autenticar como um nó confiável e executar código com privilégios de administrador, sem passar pela API HTTP nem por qualquer login do CouchDB. O CVSS 9.8 pressupõe que essa porta de distribuição esteja exposta à rede — o próprio advisory do fornecedor diz que instalações que não expõem essa porta não são vulneráveis, o que muda bastante o risco real em ambientes com firewall correto.

Detalhamento técnico

CouchDB roda sobre Erlang/OTP e, para suportar operação em cluster, cada nó abre uma porta de distribuição Erlang aleatória vinculada a todas as interfaces de rede por padrão. O utilitário `epmd` (Erlang Port Mapper Daemon), escutando em porta fixa, anuncia essa porta aleatória para quem perguntar. A comunicação entre nós Erlang distribuídos é autenticada por um segredo compartilhado chamado 'cookie' — não por usuário/senha do CouchDB.

Como é explorada

O vetor exige que o atacante alcance na rede o `epmd` (porta fixa) e a porta de distribuição Erlang aleatória do nó CouchDB — nenhum dos dois é a porta HTTP 5984 usada pela API normal. O atacante consulta o epmd para descobrir a porta de distribuição do nó, conecta-se a ela usando o cookie padrão publicamente conhecido (`monster`, usado historicamente pelos pacotes de instalação single-node e clusterizada) e, uma vez aceito como nó Erlang confiável pelo protocolo de distribuição, ganha capacidade de RPC total sobre o nó remoto — equivalente a execução de código arbitrário com privilégios de administrador do CouchDB. Não há exploração de lógica de aplicação nem bypass de autenticação HTTP: é abuso de um mecanismo de cluster projetado para confiar em qualquer peer que apresente o cookie certo.

Versões

Afetadas
Apache CouchDB anterior a 3.2.2 (todas as versões da série 1.x, 2.x e 3.x até 3.2.1 com a configuração/empacotamento padrão vulnerável).
Corrigidas em
Apache CouchDB 3.2.2 e posteriores.

Como se proteger

Atualizar para CouchDB 3.2.2 ou posterior: essa versão se recusa a iniciar se detectar o cookie padrão antigo (`monster`), forçando o operador a definir um valor próprio antes de o serviço subir. A partir da 3.2.2, os pacotes binários oficiais também passaram a vincular `epmd` e a porta de distribuição Erlang a `127.0.0.1`/`::1` em vez de todas as interfaces. Vale notar uma ressalva levantada na lista oss-security por mantenedores de distro: nem todo empacotamento aplicou esse binding automaticamente — no caso do Arch Linux, era necessário configurar manualmente `ERL_EPMD_ADDRESS=127.0.0.1`, enquanto Debian e CentOS/Rocky trataram isso via arquivo de ambiente default no pacote. Ou seja: atualizar a versão não garante por si só que a porta de distribuição ficou restrita ao localhost — é preciso confirmar isso para o pacote/distribuição específica em uso.

Como detectar

Sinais de tentativa de exploração aparecem como conexões externas às portas do subsistema de distribuição Erlang: a porta fixa do `epmd` (tradicionalmente 4369/TCP) e a porta de distribuição aleatória que ele anuncia, originadas de IPs que não deveriam ter esse acesso (fora da rede de cluster legítima). Tentativas de handshake do protocolo de distribuição Erlang seguidas de autenticação usando o cookie `monster` são o padrão característico, e módulos públicos (Metasploit, templates Nuclei) reproduzem esse fluxo de forma padronizada, o que facilita a escrita de assinaturas de IDS/IPS voltadas a esse tráfego. Não há, porém, um log de aplicação do CouchDB que registre essa exploração de forma nativa e óbvia — a autenticação ocorre na camada de distribuição Erlang, abaixo da API HTTP, então ambientes sem inspeção de rede dedicada a essas portas tendem a não ter visibilidade alguma do ataque.

Pesquisado e redigido com IA a partir do advisory do fornecedor e de análises públicas, com as fontes acima. Confira sempre a versão corrigida no advisory oficial antes de agir.
In Apache CouchDB prior to 3.2.2, an attacker can access an improperly secured default installation without authenticating and gain admin privileges. The CouchDB documentation has always made recommendations for properly securing an installation, including recommending using a firewall in front of all CouchDB installations.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
⚠ Recursos públicos, para você avaliar a exposição de sistemas que controla ou está autorizado a testar. Teste apenas com autorização.