
Prova de conceito em Go para CVE-2025-14847 (MongoBleed), uma vulnerabilidade de divulgação de memória do MongoDB. Cria documentos BSON malformados para vazar memória não inicializada do servidor por meio de mensagens de erro.
Este repositório contém um exploit de prova de conceito em Go para CVE-2025-14847, uma vulnerabilidade de divulgação de memória do MongoDB comumente referida como Mongobleed.
Esta PoC é uma reimplementação em Go do exploit original em Python por Joe Desimone, disponível aqui:
https://github.com/joe-desimone/mongobleed
O exploit abusa de uma falha na descompressão zlib e na análise BSON para vazar memória não inicializada de um servidor MongoDB vulnerável.
Leia o post do blog - https://saereya.github.io/posts/mongobleed-cve-2025-14847/
CVE-2025-14847 é causada pelo manuseio inadequado de mensagens OP_MSG comprimidas no MongoDB. Ao criar um documento BSON malformado com um comprimento de documento inflado e envolvê-lo em uma mensagem OP_COMPRESSED, o servidor pode ler além dos limites do buffer descomprimido.
Isso pode fazer com que o MongoDB interprete memória residual como nomes de campos BSON, que são então refletidos de volta em mensagens de erro. Repetir esse processo em diferentes deslocamentos pode vazar fragmentos da memória do servidor.
Esta PoC:
OP_COMPRESSEDOs dados vazados são extraídos de strings de erro como:
field name '...'type <n>Esta vulnerabilidade afeta versões específicas do MongoDB anteriores ao patch oficial.
Consulte os avisos de segurança do MongoDB para faixas de versão exatas.
Compilar:
go build -o mongobleed
Executar:
./mongobleed --host <target> --port 27017
Flags opcionais: --min-offset: Comprimento inicial do documento BSON (padrão: 20) --max-offset: Comprimento final do documento BSON (padrão: 8192)
[*] MongoBleed - CVE-2025-14847
[*] Targetting localhost:27017
[*] Offset: 20 -> 8192
[+] offset= 117 len= 51: ssions^\u0001f\bD\\��A6�;7\u0003��V%\u0019\u001a9ip
[+] offset= 119 len= 51: ssions^\u0001f\bD\\��A6�;7\u0003��V%\u0019\u001a9ip
[+] offset= 120 len= 51: ssions^\u0001f\bD\\��A6�;7\u0003��V%\u0019\u001a9ip
[+] offset= 121 len= 51: ssions^\u0001f\bD\\��A6�;7\u0003��V%\u0019\u001a9ip
Este código é fornecido apenas para fins educacionais e de pesquisa.
Não execute esta ferramenta contra sistemas que você não possui ou sem permissão explícita para testar. O uso não autorizado pode ser ilegal e antiético.