CVE-2025-14847 : Vulnérabilité critique MongoDB et fuite de mémoire non initialisée
Célestine Rochefour
Une faille de sécurité critique a été révélée dans MongoDB, exposant des millions de bases de données à un risque d’exfiltration de données sensibles sans aucune authentification. Tracée sous l’identifiant CVE-2025-14847 et évaluée à un score CVSS de 8.7, cette vulnérabilité affecte l’implémentation de la compression Zlib.
Si vous gérez des infrastructures hébergeant des bases de données MongoDB, cette alerte vous concerne directement. En effet, des versions allant jusqu’à l’ancien v3.6 sont impactées, ce qui représente un périmètre de risque immense. Dans les prochains paragraphes, nous décortiquerons le mécanisme de cette faille, ses conséquences concrètes et, surtout, les mesures correctives immédiates à appliquer.
Comprendre le mécanisme de la faille CVE-2025-14847
La vulnérabilité réside dans la gestion des paramètres de longueur lors de l’utilisation de la compression Zlib. Pour faire simple, le serveur MongoDB traite des paquets de données compressés. Lorsque la longueur déclarée dans l’en-tête ne correspond pas à la longueur réelle des données associées, une incohérence apparaît.
Cette incohérence, qualifiée de length parameter inconsistency, déclenche un comportement imprévu. Le serveur tente de lire une zone mémoire qu’il n’a pas initialisée correctement. C’est ce qu’on appelle une fuite de mémoire non initialisée (uninitialized heap memory).
Le risque pour les attaquants
Concrètement, un attaquant n’a pas besoin de voler un mot de passe ou d’exploiter une faille d’injection SQL classique. Il lui suffit d’envoyer une requête spécifique, malformée, au serveur MongoDB. architecture interne
“Une incohérence entre les champs de longueur dans les en-têtes de protocole compressés en Zlib peut permettre la lecture de mémoire de tas non initialisée par un client non authentifié.” — Description de la CVE.
Ce mécanisme permet à un client non authentifié de récupérer des fragments de la mémoire vive (RAM) du serveur. Cette mémoire peut contenir des pointeurs, des informations sur l’état interne du serveur, ou pire, des données applicatives sensibles qui venaient d’être traitées et qui traînaient encore dans le tampon. cybersécurité
Portée de l’impact : Qui est concerné ?
La gravité de cette faille est accentuée par son étendue. L’éditeur a confirmé que la vulnérabilité remonte aux versions très anciennes du moteur de base de données.
Voici la liste exhaustive des versions impactées :
- 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
Si vous maintenez encore des environnements v4.0 ou v4.2 pour des raisons de compatibilité applicative, sachez qu’ils sont vulnérables par défaut.
Conséquences potentielles
Les experts de la cybersécurité, comme la société OP Innovate, soulignent que cette faille n’est pas anodine. Elle ne se contente pas de perturber le service ; elle vole l’information.
- Exfiltration de données : Récupération de données en mémoire pouvant inclure des informations confidentielles.
- Énumération du système : Compréhension de l’architecture interne pour préparer une attaque ultérieure.
- Instabilité : Bien que moins fréquent, lire une mémoire non initialisée peut parfois mener à des plantages (Déni de Service).
Solutions et mesures de mitigation
Face à une vulnérabilité de ce calibre, l’action est impérative. MongoDB a publié des correctifs et recommande fortement une mise à jour immédiate.
1. La solution recommandée : La mise à jour
La seule façon de corriger définitivement la faille est d’appliquer les versions de maintenance contenant le patch. Voici les versions corrigées à cibler :
- MongoDB 8.2.3 et ultérieures
- MongoDB 8.0.17 et ultérieures
- MongoDB 7.0.28 et ultérieures
- MongoDB 6.0.27 et ultérieures
- MongoDB 5.0.32 et ultérieures
- MongoDB 4.4.30 et ultérieures
2. Mesure temporaire : Désactiver la compression Zlib
Dans certains cas, une mise à jour immédiate n’est pas possible en production sans phases de tests approfondies. En attendant la mise à jour, vous pouvez désactiver la compression Zlib pour neutraliser l’exploitation de la faille.
MongoDB supporte d’autres algorithmes de compression comme Snappy et Zstd. Il est donc possible de basculer.
Pour désactiver Zlib, vous devez modifier la configuration du serveur (mongod ou mongos) :
- Soit via la ligne de commande avec l’option
--networkMessageCompressors - Soit via le fichier de configuration YAML avec
net.compression.compressors
Vous devez explicitement exclure zlib de la liste.
Voici un exemple de configuration à appliquer :
net:
compression:
compressors: "snappy,zstd"
En configurant ainsi, vous autorisez Snappy et Zstd, mais vous bloquez Zlib, fermant ainsi la porte à CVE-2025-14847.
Procédure de mise en œuvre
Pour vous assurer que votre environnement est sécurisé, suivez cette séquence d’actions.
- Audit des versions : Identifiez la version exacte de MongoDB (
db.version()) sur tous vos nœuds. - Identification des vulnérabilités : Créez un inventaire comparant vos versions actuelles avec la liste des versions impactées.
- Planification :
- Si vous êtes sur une version impactée et non corrigée, planifiez la mise à jour vers la version de maintenance adéquate.
- Si le correctif n’est pas disponible ou applicable immédiatement, prévoyez le redémarrage du service avec la compression Zlib désactivée.
- Déploiement : Appliquez le correctif (mise à jour) de préférence. Si vous optez pour la mitigation, modifiez la configuration et redémarrez les instances.
- Vérification : Vérifiez que les nouvelles instances ne répondent plus aux requêtes malformées ou que la compression Zlib est bien inactive.
Tableau récapitulatif des actions
| Critère | Action recommandée | Impact opérationnel | Niveau de sécurité restant |
|---|---|---|---|
| Version obsolète | Mise à jour vers la version corrigée (ex: 8.0.17) | Moyen (nécessite un redémarrage) | 100% |
| Contrainte de mise à jour | Désactivation de Zlib (config réseau) | Faible (configuration seulement) | Élevé (mais pas de compression Zlib) |
| Aucune action | Risque élevé d’exploitation | Nul | 0% |
Conclusion : Ne tardez pas
Le CVE-2025-14847 est une faille insidieuse car elle ne nécessite aucune authentification. Dans un contexte où les bases de données MongoDB sont souvent exposées via des API ou des microservices, la surface d’attaque est vaste.
Si vous gérez des versions 4.0, 4.2 ou 4.4, la situation est d’autant plus critique que ces versions sont très répandues dans le parc français. Bien que la désactivation de Zlib soit une solution palliative efficace, la mise à jour vers une version corrigée reste le seul garant d’une sécurité totale.
Nous vous invitons à vérifier vos environnements dès aujourd’hui. La publication de cette information publique signifie que les preuves de concept d’exploitation seront probablement disponibles rapidement. Assurez-vous que votre stratégie de sauvegarde est opérationnelle, et appliquez le correctif sans attendre la prochaine fenêtre de maintenance si le risque est jugé critique pour vos données.