CVE-2025-14847 : Vulnérabilité critique MongoDB (CVSS 8.7) et fuite de mémoire
Lysandre Beauchêne
Une faille de sécurité critique affectant MongoDB a été récemment divulguée, mettant en péril des milliers de bases de données NoSQL à l’échelle mondiale. Tracée sous l’identifiant CVE-2025-14847 et dotée d’un score CVSS de 8.7, cette vulnérabilité permet à des attaquants non authentifiés de lire de la mémoire non initialisée (heap memory), potentiellement sensible.
Cet article détaille le fonctionnement de l’exploitation, l’impact réel sur vos infrastructures, les versions concernées et les mesures correctives immédiates à appliquer pour sécuriser vos environnements. mesures correctives En cette fin d’année 2025, cette découverte rappelle l’importance critique de la gestion des compressions réseau et de la mise à jour proactive des systèmes.
Analyse de la vulnérabilité CVE-2025-14847
Le cœur du problème réside dans une inconsistance de paramètre de longueur (Improper Handling of Length Parameter Inconsistency) au sein de l’implémentation serveur de Zlib. Concrètement, lorsque le serveur MongoDB traite des paquets compressés, une inadéquation entre le champ de longueur déclaré et la longueur réelle des données peut survenir.
Cette faille est spécifique à la gestion des compressions de messages réseau. Si un attaquant envoie une requête malformée exploitant cette incohérence, le serveur peut être forcé de renvoyer des données présentes dans sa mémoire tampon sans avoir eu le temps de les effacer. Ce mécanisme de fuite de mémoire (memory leak) ou de lecture de mémoire non initialisée est particulièrement dangereux car il ne nécessite aucune authentification.
Le vecteur d’attaque : Zlib et les compressions réseau
MongoDB utilise le protocole Zlib pour compresser les échanges entre le client et le serveur afin de réduire la bande passante. L’erreur logicielle se situe dans la vérification de la cohérence des données reçues. En pratique, l’attaquant manipule l’en-tête compressé pour tromper le serveur sur la taille des données à décompresser.
Le résultat est une réponse serveur contenant des fragments de mémoire hérités (uninitialized heap memory). Ces fragments peuvent contenir des informations résiduelles d’opérations précédentes, des métadonnées internes ou des données sensibles.
“Un mismatch dans les champs de longueur des en-têtes de protocole compressés en Zlib peut permettre la lecture de mémoire heap non initialisée par un client non authentifié.” — Description officielle CVE.org
Impact et risques de fuite d’informations
Bien que la lecture de la mémoire soit aléatoire, elle présente un risque de divulgation d’informations (Information Disclosure) élevé. Selon les analyses d’OP Innovate, un attaquant patient peut récupérer suffisamment de contexte pour mapper la mémoire du serveur.
Les données potentiellement exposées incluent :
- Des pointeurs mémoire (utiles pour contourner les protections ASLR).
- Des fragments de clés ou de tokens d’authentification.
- Des informations sur l’état interne du serveur.
Ce type de fuite est souvent une étape préliminaire pour des attaques plus complexes, comme des exécutions de code à distance (RCE) ou des contournements de sécurité.
Portée de l’impact : Versions affectées
La vulnérabilité a une portée étendue, touchant la quasi-totalité des versions majeures encore supportées (et certaines obsolètes) en décembre 2025. versions supportées Si vous hébergez une base de données MongoDB, il est impératif de vérifier votre version actuelle.
Voici la liste exhaustive des versions impactées par le CVE-2025-14847 :
- MongoDB 8.2.0 à 8.2.3
- MongoDB 8.0.0 à 8.0.16
- MongoDB 7.0.0 à 7.0.26
- MongoDB 6.0.0 à 6.0.26
- MongoDB 5.0.0 à 5.0.31
- MongoDB 4.4.0 à 4.4.29
- Toutes les versions MongoDB Server v4.2
- Toutes les versions MongoDB Server v4.0
- Toutes les versions MongoDB Server v3.6
La liste des versions corrigées est la suivante : 8.2.3, 8.0.17, 7.0.28, 6.0.27, 5.0.32, et 4.4.30.
Procéder à la mise à jour (Upgrade)
La méthode la plus sûre et recommandée par MongoDB est la mise à jour vers une version corrigée. Cette action élimine définitivement la faille logicielle.
Étapes recommandées :
- Sauvegarde : Effectuez un dump complet de vos bases de données avant toute manipulation.
- Test : Déployez la nouvelle version sur un environnement de pré-production pour vérifier la compatibilité.
- Déploiement : Mettez à jour les nœuds secondaires avant de procéder à une élection pour le nœud principal (replica set).
- Vérification : Confirmez que la version s’affiche correctement via la commande
db.version().
Si vous utilisez des solutions SaaS ou des images conteneurs (Docker), assurez-vous de tirer la dernière image taguée avec les versions de sécurité.
Mesure d’urgence : Désactiver la compression Zlib
Si une mise à jour immédiate n’est pas techniquement possible (maintenance en cours, compatibilité applicative), il existe une solution de contournement efficace : désactiver la compression Zlib.
En forçant le serveur à utiliser d’autres algorithmes de compression comme Snappy ou Zstd (ou en désactivant totalement la compression), vous neutralisez le vecteur d’attaque.
Comment désactiver Zlib sur MongoDB
Vous pouvez désactiver la compression en modifiant le fichier de configuration mongod.conf ou en passant des options en ligne de commande au démarrage du service.
Option 1 : Via le fichier de configuration
Ajoutez ou modifiez la section net dans votre fichier mongod.conf :
net:
compression:
compressors: ["snappy", "zstd"]
Note : En omettant zstd de cette liste, vous le désactivez. Si vous spécifiez une liste sans zstd, seul Snappy sera utilisé.
Option 2 : Ligne de commande
Démarrez le processus mongod avec l’option suivante :
mongod --networkMessageCompressors "snappy,zstd"
Cette configuration doit être appliquée sur tous les nœuds de votre cluster pour être efficace.
Tableau comparatif des stratégies de mitigation
Face à CVE-2025-14847, deux approches principales s’offrent aux administrateurs. Voici un comparatif pour vous aider à choisir la stratégie la plus adaptée à votre contexte.
| Critère | Mise à jour (Upgrade) | Désactivation de Zlib (Contournement) |
|---|---|---|
| Efficacité | Totale (corrige le bogue) | Totale (supprime le vecteur) |
| Complexité | Moyenne à Élevée (Maintenance) | Faible (Config rapide) |
| Impact Service | Interruption requise (Redémarrage) | Redémarrage requis |
| Performance | Améliorée (Code corrigé) | Variable (Snappy est rapide, Zstd plus lent) |
| Recommandation | Solution pérenne | Solution temporaire |
En règle générale, privilégiez toujours la mise à jour pour bénéficier des dernières corrections de sécurité, sauf urgence opérationnelle majeure.
Conclusion : Passer à l’action dès maintenant
La vulnérabilité CVE-2025-14847 ne doit pas être prise à la légère. Bien qu’elle nécessite une attaque réseau pour être exploitée, elle touche des versions très répandues de MongoDB et expose des données sensibles via des fuites mémoire.
Résumé des actions à entreprendre :
- Identifier : Vérifiez immédiatement la version de votre instance MongoDB.
- Prioriser : Si vous êtes sur une version listée ci-dessus, considérez le système comme vulnérable.
- Agir : Appliquez la mise à jour vers une version corrigée (8.2.3, 8.0.17, etc.). Si impossible, désactivez la compression Zlib via l’option
networkMessageCompressors.
La sécurité des bases de données est une chaîne continue. En appliquant ces correctifs, vous protégez non seulement l’intégrité de vos données, mais vous renforcez également la confiance de vos utilisateurs finaux vis-à-vis de la robustesse de votre architecture.
En pratique : Planifiez une revue de sécurité de vos clusters MongoDB avant la fin de ce trimestre pour vous assurer que toutes les instances obsolètes (v4.2, v4.0) ont été migrées vers des versions supportées.