← voltar
CVE-2025-14847highsob ataqueCWE-130

Zlib compressed protocol header length confusion may allow memory read

100Vexday Risk Score

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

ssvc Actcvss 8.7epss 83%
da publicação à arma0 dias
Publicada no NVD19 de dez.
1ª PoC30 de jul.
metasploit19 de dez.
CISA KEV+10d
probabilidade de exploração
83%top 1% das CVEs
exploração observada
simCISA + VulnCheck
71 exploit(s) público(s)
Ação exigida pela CISAprazo federal: 2026-01-19

Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.

Resumo

CVE-2025-14847 ("MongoBleed") é uma falha de confusão de tamanho no tratamento de cabeçalhos de mensagens comprimidas via zlib no protocolo binário do MongoDB Server, que permite a um cliente não autenticado ler memória heap não inicializada do processo mongod/mongos. A falha ocorre na camada de rede, antes de qualquer verificação de autenticação ou autorização, e afeta virtualmente todas as branches do MongoDB Server, incluindo versões EOL. Está no catálogo KEV da CISA com exploração confirmada e possui PoC pública, módulo Metasploit e template Nuclei.

Detalhamento técnico

O protocolo binário do MongoDB usa o opcode OP_COMPRESSED como wrapper para mensagens (tipicamente OP_MSG) comprimidas em trânsito. O cabeçalho OP_COMPRESSED inclui, entre outros campos, o tamanho esperado da mensagem após a descompressão — valor fornecido pelo próprio cliente. O servidor usa esse valor declarado para alocar o buffer de destino da descompressão zlib antes de invocar o decompressor.

O problema (CWE-130, Improper Handling of Length Parameter Inconsistency) é que, se o payload comprimido de fato se expande para um número de bytes menor do que o declarado no cabeçalho, apenas parte do buffer alocado é escrita pelo zlib; o restante permanece com conteúdo residual de alocações heap anteriores. Código subsequente no pipeline de processamento de mensagens confia no tamanho declarado, não no número real de bytes escritos pela descompressão, e esse buffer parcialmente não inicializado acaba sendo tratado como dado de mensagem válido.

Como essa etapa de decodificação ocorre no caminho de recebimento de rede, antes de autenticação, autorização e execução de query, o bug independe de credenciais, roles ou configuração de acesso a bancos/coleções — a única pré-condição real é que a porta do mongod/mongos esteja acessível e que a compressão zlib seja negociável pelo servidor.

O impacto no vetor CVSS (VC:H, mas VI:N/VA:N) reflete que a falha é puramente de confidencialidade: não há corrupção de dados nem indisponibilidade diretamente associada, apenas exposição de memória heap do processo do servidor de banco de dados.

Como é explorada

O vetor de exploração é remoto e pré-autenticação: basta estabelecer uma conexão TCP com a porta do MongoDB e negociar/enviar uma mensagem OP_COMPRESSED usando o compressor zlib com um cabeçalho cujo tamanho declarado de descompressão seja maior do que o payload comprimido efetivamente produz ao ser expandido. O servidor decodifica esse payload e retorna dados que incluem os bytes residuais do heap, sem exigir usuário, senha, sessão prévia ou interação humana (AC:L, PR:N, UI:N no vetor CVSS 4.0).

Na prática, o conteúdo vazado depende do estado de memória do processo mongod no momento — pode conter fragmentos de credenciais, tokens de sessão, strings de conexão ou dados de consultas recentes de outros clientes, mas isso não é garantido em toda tentativa; a exploração é essencialmente uma leitura repetida que amplia a chance de capturar dado sensível conforme a reutilização de heap acontece.

A vulnerabilidade está no catálogo KEV da CISA desde 29/12/2025 (prazo de correção: 19/01/2026), confirmando exploração ativa observada. Existe PoC pública (repositório github.com/joe-desimone/mongobleed, referenciado no thread de oss-security), além de módulo Metasploit e template Nuclei já disponíveis, o que baixa a barreira de exploração para praticamente qualquer atacante com acesso de rede ao serviço.

Versões

Afetadas
MongoDB Server v7.0 anterior a 7.0.28; v8.0 anterior a 8.0.17; v8.2 anterior a 8.2.3; v6.0 anterior a 6.0.27; v5.0 anterior a 5.0.32; v4.4 anterior a 4.4.30; todas as versões v4.2 (>= 4.2.0); todas as versões v4.0 (>= 4.0.0); todas as versões v3.6 (>= 3.6.0). Segundo o Jira do MongoDB, especificamente: 8.2.0–8.2.2, 8.0.0–8.0.16, 7.0.0–7.0.26, 6.0.0–6.0.26, 5.0.0–5.0.31, 4.4.0–4.4.29.
Corrigidas em
8.2.3, 8.0.17, 7.0.28, 6.0.27, 5.0.32 e 4.4.30. Branches 3.6, 4.0 e 4.2 são EOL e não recebem patch — remediação exige upgrade para uma branch suportada.

Como se proteger

A correção definitiva é atualizar para as versões corrigidas por branch: 8.2.3, 8.0.17, 7.0.28, 6.0.27, 5.0.32 ou 4.4.30, conforme a linha em uso. Para as branches 3.6, 4.0 e 4.2, que são end-of-life, o fornecedor não emitiu patch — a única remediação é migrar para uma branch suportada e corrigida.

Se a atualização imediata não for possível, o próprio fornecedor recomenda desabilitar o compressor zlib no servidor, iniciando mongod/mongos com a opção networkMessageCompressors ou net.compression.compressors configurada para excluir explicitamente zlib (por exemplo, usando snappy,zstd ou disabled). Isso remove o caminho de código vulnerável, mas tem custo: perda do ganho de banda da compressão zlib e possível fallback para tráfego sem compressão em clientes que só oferecem esse compressor.

Controles de acesso a nível de aplicação — autenticação, RBAC, restrição por usuário/coleção — NÃO mitigam a falha, porque o código vulnerável executa antes de qualquer verificação de autenticação. Restringir a exposição de rede (firewall, bind em interface privada, isolamento de rede) reduz a superfície de ataque mas não é uma correção reconhecida pelo fornecedor; a única mitigação oficial além do upgrade é a desativação do compressor zlib.

Como detectar

Como a falha ocorre na camada de decodificação do protocolo binário, antes de qualquer log de autenticação, o mongod normalmente não gera evidência aplicacional direta de uma tentativa de exploração — não há um evento de auditoria nativo confiável para esse ataque. A detecção prática depende de inspeção de tráfego de rede: procurar mensagens OP_COMPRESSED com compressorId indicando zlib em que o tamanho declarado de descompressão (uncompressedSize) diverge do tamanho real do payload comprimido correspondente, ou usar as assinaturas já publicadas no template Nuclei e no módulo Metasploit como referência de padrão de exploração. Monitorar conexões não autenticadas e de curta duração à porta do MongoDB, seguidas de respostas anômalas, é o sinal indireto mais acessível.

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.
Mismatched length fields in Zlib compressed protocol headers may allow a read of uninitialized heap memory by an unauthenticated client. This issue affects all MongoDB Server v7.0 prior to 7.0.28 versions, MongoDB Server v8.0 versions prior to 8.0.17, MongoDB Server v8.2 versions prior to 8.2.3, MongoDB Server v6.0 versions prior to 6.0.27, MongoDB Server v5.0 versions prior to 5.0.32, MongoDB Server v4.4 versions prior to 4.4.30, MongoDB Server v4.2 versions greater than or equal to 4.2.0, MongoDB Server v4.0 versions greater than or equal to 4.0.0, and MongoDB Server v3.6 versions greater than or equal to 3.6.0.
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
PoCs públicas encontradas71
githubgithub.com/Black1hp/mongobleed-scanner36githubgithub.com/cybertechajju/CVE-2025-14847_Expolit31githubgithub.com/ProbiusOfficial/CVE-2025-1484725githubgithub.com/onewinner/CVE-2025-1484714githubgithub.com/Security-Phoenix-demo/mongobleed-exploit-CVE-2025-1484713githubgithub.com/chinaxploiter/CVE-2025-14847-PoC4githubgithub.com/joshuavanderpoll/CVE-2025-148473githubgithub.com/franksec42/mongobleed-exploit-CVE-2025-148473githubgithub.com/alexcyberx/CVE-2025-14847_Expolit2githubgithub.com/peakcyber-security/CVE-2025-148472githubgithub.com/nma-io/mongobleed2githubgithub.com/CadGoose/MongoBleed-CVE-2025-14847-Fully-Automated-scanner1githubgithub.com/waheeb71/CVE-2025-148471githubgithub.com/sakthivel10q/CVE-2025-148471githubgithub.com/NoNameError/MongoBLEED---CVE-2025-14847-POC-1githubgithub.com/InfoSecAntara/CVE-2025-14847-MongoDB1githubgithub.com/lincemorado97/CVE-2025-148471githubgithub.com/FurkanKAYAPINAR/CVE-2025-14847-MongoBleed-Exploit1githubgithub.com/dawnsmithcyber/azure-vulnerability-remediation-project1githubgithub.com/AdolfBharath/mongobleed1githubgithub.com/shokribardiya/CVE-2025-14847-mongobleed0githubgithub.com/tunahantekeoglu/MongoDeepDive0githubgithub.com/KingHacker353/CVE-2025-14847_Expolit0githubgithub.com/saereya/CVE-2025-14847---MongoBleed0githubgithub.com/JemHadar/MongoBleed-DFIR-Triage-Script-CVE-2025-148470githubgithub.com/14mb1v45h/CYBERDUDEBIVASH-MONGODB-DETECTOR-v20260githubgithub.com/kuyrathdaro/cve-2025-148470githubgithub.com/vfa-tuannt/CVE-2025-148470githubgithub.com/j0lt-github/mongobleedburp0githubgithub.com/Rishi-kaul/CVE-2025-14847-MongoBleed0githubgithub.com/Systemhaus-Schulz/MongoBleed-CVE-2025-148470githubgithub.com/ElJoamy/MongoBleed-exploit0githubgithub.com/keraattin/Mongobleed-Detector-CVE-2025-148470githubgithub.com/im-hanzou/mongobleed0githubgithub.com/sahar042/CVE-2025-148470githubgithub.com/pedrocruz2202/mongobleed-scanner0githubgithub.com/pedrocruz2202/pedrocruz2202.github.io0githubgithub.com/sakthivel10q/sakthivel10q.github.io0githubgithub.com/amnnrth/CVE-2025-148470githubgithub.com/sho-luv/MongoBleed0githubgithub.com/0xBlackash/CVE-2025-148470vulncheckvulncheck.com/xdb/02dd79a637aanão verificadovulncheckvulncheck.com/xdb/fe706894a1a9não verificadovulncheckvulncheck.com/xdb/52d82b1418a7não verificadovulncheckvulncheck.com/xdb/7bec0bc91cd8não verificadovulncheckvulncheck.com/xdb/d932733b46e3não verificadovulncheckvulncheck.com/xdb/181477ab83b1não verificadovulncheckvulncheck.com/xdb/a49c59c0e531não verificadovulncheckvulncheck.com/xdb/db6becc2eb44não verificadovulncheckvulncheck.com/xdb/f4566076abb2não verificadovulncheckvulncheck.com/xdb/70d85c77436bnão verificadovulncheckvulncheck.com/xdb/a4c0f261204fnão verificadovulncheckvulncheck.com/xdb/7ad9d08496b2não verificadovulncheckvulncheck.com/xdb/91956412657dnão verificadovulncheckvulncheck.com/xdb/e36c882b2d40não verificadovulncheckvulncheck.com/xdb/8e708050ef93não verificadovulncheckvulncheck.com/xdb/ddb87b41e095não verificadovulncheckvulncheck.com/xdb/e31e64b6b94dnão verificadovulncheckvulncheck.com/xdb/ca2660a74092não verificadovulncheckvulncheck.com/xdb/7f5a8a61dceenão verificadovulncheckvulncheck.com/xdb/8c5a46767f5dnão verificadovulncheckvulncheck.com/xdb/cc9776783586não verificadovulncheckvulncheck.com/xdb/c72b6137f65cnão verificadovulncheckvulncheck.com/xdb/b4df1eeb4a8enão verificadovulncheckvulncheck.com/xdb/4ef756de9b3fnão verificadovulncheckvulncheck.com/xdb/e3cc60307323não verificadovulncheckvulncheck.com/xdb/7ccc79f37b95não verificadovulncheckvulncheck.com/xdb/5d99c938f82dnão verificadovulncheckvulncheck.com/xdb/5c0359da676bnão verificadovulncheckvulncheck.com/xdb/bcaf58f61476não verificadovulncheckvulncheck.com/xdb/c735cd3246ebnão verificado
⚠ Recursos públicos, para você avaliar a exposição de sistemas que controla ou está autorizado a testar. Teste apenas com autorização.