
Mongobleed Detector CVE-2025-14847
Un scanner de vulnérabilité professionnel pour CVE-2025-14847 (MongoBleed) - Vulnérabilité de fuite mémoire MongoDB.
+================================================================+
| MongoBleed Scanner v1.3.0 |
| CVE-2025-14847 - MongoDB Memory Leak Vulnerability |
+================================================================+
CVE-2025-14847 (MongoBleed) est une vulnérabilité critique de fuite mémoire dans la gestion de la compression zlib de MongoDB.
Lors du traitement de messages compressés (OP_COMPRESSED avec zlib), MongoDB alloue un tampon basé sur le champ uncompressedSize fourni par le client. Un client malveillant peut spécifier une taille plus grande que les données réelles, ce qui amène MongoDB à renvoyer de la mémoire de tas non initialisée contenant des données sensibles provenant d'opérations précédentes.
| Branche | 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 versions | EOL - Pas de correctif |
Aucun paquet supplémentaire requis. Le scanner utilise uniquement la bibliothèque standard de Python.
# Port par défaut (27017)
python scanner.py -t 192.168.1.100
# Port personnalisé
python scanner.py -t 192.168.1.100:27018
# Séparées par des virgules
python scanner.py -t 192.168.1.100,192.168.1.101:27018,db.example.com
# targets.txt (une par ligne, # pour les commentaires)
# 192.168.1.100
# 192.168.1.101:27018
# mongodb.example.com
python scanner.py -f targets.txt
# Texte brut
python scanner.py -t 192.168.1.100 -o rapport.txt
# JSON (détaillé)
python scanner.py -t 192.168.1.100 -o rapport.json
# CSV (tableur)
python scanner.py -t 192.168.1.100 -o rapport.csv
| Option | Description |
|---|---|
-t, --targets | Cibles séparées par des virgules (hôte ou hôte:port) |
-f, --file | Fichier contenant les cibles (une par ligne) |
-o, --output | Fichier d'export (.txt, .json, .csv) |
-q, --quiet | Afficher uniquement le résumé |
-v, --version | Afficher la version |
-h, --help | Afficher l'aide |
| Symbole | Statut | Description |
|---|---|---|
[!] | VULNÉRABLE | Confirmé vulnérable, action immédiate requise |
[? !] | POSSIBLEMENT VULNÉRABLE | Version estimée, nécessite une vérification manuelle |
[+] | SÉCURISÉ | Version corrigée |
[~] | ATTÉNUÉ | Version vulnérable mais zlib désactivé |
[?] | INCONNU | Impossible de déterminer le statut |
[-] | INACCESSIBLE | Échec de la connexion |
+================================================================+
| MongoBleed Scanner v1.3.0 |
| CVE-2025-14847 - MongoDB Memory Leak Vulnerability |
+================================================================+
| LÉGAL : Tests de sécurité autorisés uniquement. Obtenez |
| l'autorisation avant de scanner des systèmes que |
| vous ne possédez pas. |
+================================================================+
[*] 4 cible(s) chargée(s)
RÉSULTATS DU SCAN :
----------------------------------------------------------------------
[!] 192.168.1.100:27017 VULNÉRABLE v8.0.16 zlib:ON -> Mettre à jour vers 8.0.17
[? !] 192.168.1.101:27018 POSSIBLEMENT VULNÉRABLE v~8.2.x zlib:ON -> Vérifier la version, mettre à jour vers 8.2.3
[+] 192.168.1.102:27017 SÉCURISÉ v8.0.17 zlib:ON
[~] 192.168.1.103:27017 ATTÉNUÉ v8.0.16 zlib:OFF (zlib désactivé)
======================================================================
RÉSUMÉ DU SCAN
======================================================================
Total de cibles scannées : 4
Accessibles : 4
Inaccessibles : 0
----------------------------------------------------------------------
[!] VULNÉRABLES : 1
[? !] POSSIBLEMENT VULN. : 1 (version estimée, vérification nécessaire)
[+] SÉCURISÉES (corrigées) : 1
[~] ATTÉNUÉES : 1 (version vulnérable mais zlib désactivé)
[?] INCONNUES : 0
======================================================================
CIBLES VULNÉRABLES NÉCESSITANT UNE ACTION IMMÉDIATE :
----------------------------------------------------------------------
192.168.1.100:27017 v8.0.16 zlib:ON -> Mettre à niveau vers 8.0.17
v8.0.16 — Version exacte détectéev~8.2.x — Estimée à partir du protocole wire (~ indique une estimation)L'estimation a lieu lorsque MongoDB 8.2+ nécessite une authentification pour les commandes de version. Le scanner se replie sur le mappage de version du protocole wire.
1. Connexion TCP
└── Se connecter au port MongoDB
2. Détection de version
├── Envoyer la commande 'hello' (obtenir la version wire, pas d'auth requise)
└── Envoyer la commande 'buildInfo' (obtenir la version exacte, peut nécessiter une auth)
3. Vérification de la compression
└── Envoyer un message compressé avec zlib, vérifier si le serveur accepte
4. Évaluation
└── Comparer la version + statut zlib avec la base de données des vulnérabilités
Lorsque la version exacte n'est pas disponible (auth requise), le scanner l'estime à partir de maxWireVersion :
| Version Wire | Branche MongoDB |
|---|---|
| 25 | 8.0.x |
| 27 | 8.2.x |
| 21 | 7.0.x |
| 17 | 6.0.x |
| 13 | 5.0.x |
VULNÉRABLE = (version dans la plage vulnérable) ET (zlib activé)
ATTÉNUÉ = (version dans la plage vulnérable) ET (zlib désactivé)
SÉCURISÉ = (version >= version corrigée)
| Version actuelle | Mettre à jour vers |
|---|---|
| 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 # Supprimer 'zlib'
Ou via la ligne de commande :
mongod --networkMessageCompressors snappy,zstd
CE OUTIL EST FOURNI UNIQUEMENT POUR DES TESTS DE SÉCURITÉ AUTORISÉS.
Vous devez obtenir une autorisation appropriée avant de scanner tout système
que vous ne possédez pas ou pour lequel vous n'avez pas d'autorisation écrite explicite de tester.
L'accès non autorisé à des systèmes informatiques est illégal.
Les auteurs déclinent toute responsabilité en cas d'utilisation abusive de cet outil.
| Code | Signification |
|---|---|
| 0 | Toutes les cibles sont sécurisées ou atténuées |
| 1 | Des erreurs de connexion se sont produites |
| 2 | Des cibles vulnérables ont été trouvées |
Utile pour les scripts :
python scanner.py -t mongodb.example.com
if [ $? -eq 2 ]; then
echo "ALERTE : MongoDB vulnérable détecté !"
fi
Uniquement à des fins de tests de sécurité autorisés et de recherche.