CVE-2025-14847 : Fuite de mémoire dans MongoDB, corrigez vos bases de données immédiatement
Églantine Montclair
Une vulnérabilité critique (CVE-2025-14847) a été récemment découverte dans MongoDB, affectant des millions de bases de données à l’échelle mondiale. Avec un score CVSS de 8.7, cette faille permet à des attaquants non authentifiés de lire la mémoire non initialisée du serveur, potentiellement exposant des données sensibles.
En 2025, la sécurité des bases de données NoSQL reste une priorité absolue pour les équipes d’infrastructure. Cet article détaille l’impact de cette faille, les versions vulnérables et les mesures correctives urgentes à appliquer.
Comprendre la vulnérabilité CVE-2025-14847
Cette faille de sécurité est techniquement classée comme une inconsistance du paramètre de longueur (improper handling of length parameter inconsistency). Elle survient lorsque le serveur MongoDB traite des requêtes compressées via le protocole Zlib. protocole Zlib
Le mécanisme de l’attaque
Le problème réside dans la manière dont le serveur gère les en-têtes compressés. Si un attaquant envoie un paquet où la longueur déclarée dans le champ “length” ne correspond pas à la longueur réelle des données, le serveur peut se tromper.
“Des champs de longueur mal assortis dans les en-têtes de protocole compressés Zlib peuvent permettre la lecture de mémoire non initialisée par un client non authentifié.” — Description CVE.org
Concrètement, cela force le serveur à renvoyer des données présentes dans le tas (heap) sans qu’elles aient été effacées ou initialisées. Ce n’est pas une corruption de mémoire, mais une fuite d’informations.
Pourquoi est-ce dangereux ?
La mémoire du tas peut contenir des fragments de données d’autres sessions, des pointeurs internes, des clés de session ou des informations de configuration. clés de session Bien que MongoDB ne renvoie pas systématiquement des mots de passe en clair, la lecture de cette mémoire “non initialisée” peut aider un attaquant à reconstruire l’état interne du serveur, facilitant des attaques futures ou de l’espionnage industriel.
Versions impactées et périmètre de risque
L’ampleur de cette faille est significative car elle touche une large gamme de versions, des plus récentes aux plus anciennes. Si vous utilisez une version antérieure à la version de correction, votre infrastructure est vulnérable.
Voici la liste complète des versions impactées par 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 inclut des versions vieillissantes (v3.6, v4.0) qui ne sont plus officiellement supportées par MongoDB. Cela constitue un signal d’alarme pour les entreprises retardant leurs mises à jour de maintenance.
Mesures correctives et solutions de mitigation
Face à une menace de ce type, l’action la plus sûre reste la mise à jour immédiate. Toutefois, des solutions temporaires existent si la mise à jour n’est pas possible immédiatement.
1. La solution recommandée : Mise à jour
MongoDB a publié les versions corrigées. Il est impératif de passer à l’une des versions suivantes pour neutraliser la faille :
- MongoDB 8.2.3 et supérieures
- MongoDB 8.0.17 et supérieures
- MongoDB 7.0.28 et supérieures
- MongoDB 6.0.27 et supérieures
- MongoDB 5.0.32 et supérieures
- MongoDB 4.4.30 et supérieures
2. Solution temporaire : Désactiver la compression Zlib
Si vous ne pouvez pas redémarrer vos services avec une nouvelle version tout de suite, vous pouvez désactiver la compression Zlib. L’attaque nécessite que le support Zlib soit activé sur le serveur.
Il est recommandé de configurer le serveur pour utiliser uniquement Snappy ou Zstd (désactiver Zlib).
Voici comment procéder :
- Lors du démarrage du processus
mongodoumongos, utilisez l’option de ligne de commande--networkMessageCompressors(ou le paramètre de configurationnet.compression.compressors). - Assurez-vous que
zlibn’est pas inclus dans la liste.
Exemple de configuration (mongod.conf) :
net:
compression:
compressors: "snappy,zstd"
3. Bonnes pratiques de sécurité (Defense in Depth)
Même si cette faille est spécifique, elle rappelle l’importance des principes de sécurité fondamentaux :
- Isoler le réseau : Ne jamais exposer MongoDB directement à Internet. Utilisez des réseaux privés (VPC) et des VPN.
- Authentification forte : Bien que cette faille soit unauthenticated (sans authentification), une bonne configuration inclut toujours le contrôle d’accès (Auth) et le chiffrement (TLS).
Tableau récapitulatif des actions
Voici un résumé des priorités pour les administrateurs système et les DevOps en charge des bases de données.
| Priorité | Action | Impact sur le service | Description |
|---|---|---|---|
| Critique | Mise à jour du binaire | Nécessite un redémarrage | Applique le patch officiel de MongoDB. C’est la seule solution définitive. |
| Haute | Désactiver Zlib | Aucun (si Snappy/Zstd déjà supportés) | Modifie la configuration pour empêcher l’exploitation de la faille sans changer de version binaire. |
| Moyenne | Audit des logs | Aucun | Rechercher des requêtes anormales ou des connexions provenant d’IP inconnues. |
L’avis de l’expert : Pourquoi cette faille est-elle “spéciale” ?
Les failles de lecture de mémoire non initialisée sont particulièrement insidieuses car elles ne laissent pas de traces d’intrusion classiques. Un attaquant peut extraire des informations précises sans générer d’erreur système visible.
Dans le contexte de 2025, où la conformité (RGPD, NIS 2) est scrutée, la perte de données potentielles via ce bogue pourrait entraîner des sanctions lourdes. Il est crucial de traiter cette alerte avec la même réactivité qu’une injection SQL classique.
Checklist de déploiement rapide
Voici les étapes à suivre dans l’ordre pour sécuriser vos environnements :
- Identifier : Vérifiez la version exacte de votre instance MongoDB (
db.version()). - Évaluer : Si votre version est dans la liste rouge, passez à l’action.
- Mitiger : Si le patch est impossible aujourd’hui, modifiez la configuration pour retirer
zlibdes compresseurs. - Valider : Après redémarrage, vérifiez que la compression fonctionne toujours (avec Snappy ou Zstd) et que la faille est fermée.
Conclusion
La faille CVE-2025-14847 est une alerte sérieuse pour les administrateurs de bases de données MongoDB. Elle exploite une faiblesse dans la gestion de la compression pour lire la mémoire du serveur, mettant potentiellement en danger la confidentialité des données.
La priorité absolue est de mettre à jour vers les versions corrigées (8.2.3, 8.0.17, etc.). Si cette option n’est pas réalisable immédiatement, la désactivation de la compression Zlib offre une protection efficace. Ne laissez pas vos données de côté ; agissez dès maintenant pour sécuriser votre infrastructure NoSQL.