← volver
CVE-2025-14847highbajo ataqueCWE-130

Zlib compressed protocol header length confusion may allow memory read

100Vexday Risk Score

Corrige ahora. Ella está bajo explotación confirmada por CISA y tiene exploit funcional público.

ssvc Actcvss 8.7epss 83%
de la publicación al arma0 días
Publicada en NVD19 dic
1ª PoC30 jul
metasploit19 dic
CISA KEV+10d
probabilidad de explotación
83%top 1% de las CVE
explotación observada
CISA + VulnCheck
71 exploit(s) público(s)
Acción exigida por CISAplazo 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.

Resumen

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.

Detalle 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.

Cómo se explota

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.

Versiones

Afectadas
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.
Corregidas en
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.

Cómo protegerse

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.

Cómo 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.

Investigado y redactado con IA a partir del advisory del fabricante y análisis públicos, con las fuentes citadas. Verifica siempre la versión corregida en el advisory oficial antes de actuar.
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/02dd79a637aano verificadovulncheckvulncheck.com/xdb/fe706894a1a9no verificadovulncheckvulncheck.com/xdb/52d82b1418a7no verificadovulncheckvulncheck.com/xdb/7bec0bc91cd8no verificadovulncheckvulncheck.com/xdb/d932733b46e3no verificadovulncheckvulncheck.com/xdb/181477ab83b1no verificadovulncheckvulncheck.com/xdb/a49c59c0e531no verificadovulncheckvulncheck.com/xdb/db6becc2eb44no verificadovulncheckvulncheck.com/xdb/f4566076abb2no verificadovulncheckvulncheck.com/xdb/70d85c77436bno verificadovulncheckvulncheck.com/xdb/a4c0f261204fno verificadovulncheckvulncheck.com/xdb/7ad9d08496b2no verificadovulncheckvulncheck.com/xdb/91956412657dno verificadovulncheckvulncheck.com/xdb/e36c882b2d40no verificadovulncheckvulncheck.com/xdb/8e708050ef93no verificadovulncheckvulncheck.com/xdb/ddb87b41e095no verificadovulncheckvulncheck.com/xdb/e31e64b6b94dno verificadovulncheckvulncheck.com/xdb/ca2660a74092no verificadovulncheckvulncheck.com/xdb/7f5a8a61dceeno verificadovulncheckvulncheck.com/xdb/8c5a46767f5dno verificadovulncheckvulncheck.com/xdb/cc9776783586no verificadovulncheckvulncheck.com/xdb/c72b6137f65cno verificadovulncheckvulncheck.com/xdb/b4df1eeb4a8eno verificadovulncheckvulncheck.com/xdb/4ef756de9b3fno verificadovulncheckvulncheck.com/xdb/e3cc60307323no verificadovulncheckvulncheck.com/xdb/7ccc79f37b95no verificadovulncheckvulncheck.com/xdb/5d99c938f82dno verificadovulncheckvulncheck.com/xdb/5c0359da676bno verificadovulncheckvulncheck.com/xdb/bcaf58f61476no verificadovulncheckvulncheck.com/xdb/c735cd3246ebno verificado
⚠ Recursos públicos, para evaluar la exposición de sistemas que controlas o estás autorizado a probar. Prueba solo con autorización.