
Mongobleed Detector CVE-2025-14847
Uno scanner di vulnerabilità professionale per CVE-2025-14847 (MongoBleed): vulnerabilità di perdita di memoria di MongoDB.
+================================================================+
| MongoBleed Scanner v1.3.0 |
| CVE-2025-14847 - MongoDB Memory Leak Vulnerability |
+================================================================+
CVE-2025-14847 (MongoBleed) è una vulnerabilità critica di perdita di memoria nella gestione della compressione zlib di MongoDB.
Quando elabora messaggi compressi (OP_COMPRESSED con zlib), MongoDB alloca un buffer basato sul campo uncompressedSize fornito dal client. Un client malintenzionato può specificare una dimensione maggiore rispetto ai dati effettivi, inducendo MongoDB a restituire memoria heap non inizializzata contenente dati sensibili di operazioni precedenti.
| Ramo | 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 le versioni | EOL - Nessuna patch |
Non sono richiesti pacchetti aggiuntivi. Lo scanner utilizza solo la libreria standard di Python.
# Default port (27017)
python scanner.py -t 192.168.1.100
# Custom port
python scanner.py -t 192.168.1.100:27018
# Comma-separated
python scanner.py -t 192.168.1.100,192.168.1.101:27018,db.example.com
# targets.txt (one per line, # for comments)
# 192.168.1.100
# 192.168.1.101:27018
# mongodb.example.com
python scanner.py -f targets.txt
# Plain text
python scanner.py -t 192.168.1.100 -o report.txt
# JSON (detailed)
python scanner.py -t 192.168.1.100 -o report.json
# CSV (spreadsheet)
python scanner.py -t 192.168.1.100 -o report.csv
| Opzione | Descrizione |
|---|---|
-t, --targets | Target separati da virgola (host o host:porta) |
-f, --file | File con i target (uno per riga) |
-o, --output | File di esportazione (.txt, .json, .csv) |
-q, --quiet | Mostra solo il riepilogo |
-v, --version | Mostra la versione |
-h, --help | Mostra l'aiuto |
| Simbolo | Stato | Descrizione |
|---|---|---|
[!] | VULNERABLE | Vulnerabilità confermata, azione immediata richiesta |
[?!] | POSSIBLY VULNERABLE | Versione stimata, richiede verifica manuale |
[+] | SAFE | Versione patchata |
[~] | MITIGATED | Versione vulnerabile ma zlib disabilitato |
[?] | UNKNOWN | Impossibile determinare lo stato |
[-] | UNREACHABLE | Connessione fallita |
+================================================================+
| MongoBleed Scanner v1.3.0 |
| CVE-2025-14847 - MongoDB Memory Leak Vulnerability |
+================================================================+
| LEGAL: Authorized security testing only. Obtain permission |
| before scanning systems you do not own. |
+================================================================+
[*] Loaded 4 target(s)
SCAN RESULTS:
----------------------------------------------------------------------
[!] 192.168.1.100:27017 VULNERABLE v8.0.16 zlib:ON -> Update to 8.0.17
[?!] 192.168.1.101:27018 POSSIBLY VULNERABLE v~8.2.x zlib:ON -> Check version, update to 8.2.3
[+] 192.168.1.102:27017 SAFE v8.0.17 zlib:ON
[~] 192.168.1.103:27017 MITIGATED v8.0.16 zlib:OFF (zlib disabled)
======================================================================
SCAN SUMMARY
======================================================================
Total targets scanned: 4
Reachable: 4
Unreachable: 0
----------------------------------------------------------------------
[!] VULNERABLE: 1
[?!] POSSIBLY VULN: 1 (version estimated, needs verification)
[+] SAFE (patched): 1
[~] MITIGATED: 1 (vulnerable version but zlib disabled)
[?] UNKNOWN: 0
======================================================================
VULNERABLE TARGETS REQUIRING IMMEDIATE ACTION:
----------------------------------------------------------------------
192.168.1.100:27017 v8.0.16 zlib:ON -> Upgrade to 8.0.17
v8.0.16 — Versione esatta rilevatav~8.2.x — Stimata dal wire protocol (~ indica una stima)La stima avviene quando MongoDB 8.2+ richiede l'autenticazione per i comandi di versione. Lo scanner ripiega sulla mappatura delle versioni del wire protocol.
1. TCP Connection
└── Connect to MongoDB port
2. Version Detection
├── Send 'hello' command (get wire version, no auth required)
└── Send 'buildInfo' command (get exact version, may need auth)
3. Compression Check
└── Send zlib-compressed message, check if server accepts
4. Assessment
└── Compare version + zlib status against vulnerability database
Quando la versione esatta non è disponibile (autenticazione richiesta), lo scanner stima da maxWireVersion:
| Versione Wire | Branch MongoDB |
|---|---|
| 25 | 8.0.x |
| 27 | 8.2.x |
| 21 | 7.0.x |
| 17 | 6.0.x |
| 13 | 5.0.x |
VULNERABLE = (version in vulnerable range) AND (zlib enabled)
MITIGATED = (version in vulnerable range) AND (zlib disabled)
SAFE = (version >= fixed version)
| Versione attuale | Aggiorna a |
|---|---|
| 8.2.0 - 8.2.2 | 8.2.3+ |
| 8.0.0 - 8.0.16 | 8.0.17+ |
| 7.0.0 - 7.0.27 | 7.0.28+ |
| 6.0.0 - 6.0.26 | 6.0.27+ |
| 5.0.0 - 5.0.31 | 5.0.32+ |
| 4.4.0 - 4.4.29 | 4.4.30+ |
# mongod.conf
net:
compression:
compressors: snappy,zstd # Remove 'zlib'
Oppure tramite riga di comando:
mongod --networkMessageCompressors snappy,zstd
THIS TOOL IS PROVIDED FOR AUTHORIZED SECURITY TESTING ONLY.