CVE-2025-14847 : tout ce qu'il faut savoir sur MongoBleed

Les clients Akamai Hunt concernés ont déjà reçu une cartographie détaillée des actifs vulnérables, accompagnée de mesures d'atténuation exploitables.

Partager

Synthèse

  • Le 19 décembre 2025, une nouvelle vulnérabilité affectant la majorité des déploiements MongoDB a été rendue publique sur des instances MongoDB.

  • Cette vulnérabilité, baptisée MongoBleed, réside dans la gestion par MongoDB des messages compressés zlib et permet à des clients non authentifiés de divulguer de la mémoire de tas non initialisée à partir de la base de données.

  • Cette CVE s'est vu attribuer un score CVSSv4 de 8,7.

  • Le 29 décembre 2025, la Cybersecurity and Infrastructure Security Agency (CISA) a ajouté la CVE-2025-14847 à son catalogue Known Exploited Vulnerabilities (KEV), confirmant une exploitation active. En parallèle, la télémétrie d'Akamai indique des communications MongoDB dans environ 62 % des réseaux d'entreprise.

Dans cet article, nous proposons une analyse technique détaillée de MongoBleed, une présentation des versions MongoDB affectées (avec une analyse des correctifs), ainsi que des recommandations d'atténuation pratiques, notamment des requêtes Akamai Guardicore Segmentation Insight pour identifier les actifs vulnérables.

Informations sur cette vulnérabilité

MongoBleed provient de la façon dont MongoDB traite les messages compressés du protocole wire, une fonctionnalité activée par défaut.

MongoDB communique au moyen de messages marqués par l'opcode OP_MSG, dont les charges utiles sont encodées au format Binary JSON (BSON). Lorsqu'un message compressé est envoyé, la charge utile OP_MSG d'origine est encapsulée dans une structure OP_COMPRESSED.

Un message OP_COMPRESSED inclut la charge utile OP_MSG et la taille attendue de la charge utile après décompression.


struct OP_COMPRESSED {
    struct MsgHeader {
        int32  messageLength;
        int32  requestID;
        int32  responseTo;
        int32  opCode;
    };
    int32_t  originalOpcode;
    int32_t  uncompressedSize;
    uint8_t  compressorId;
    char     *compressedMessage;
};

Un attaquant peut manipuler le champ uncompressedSize et le rendre supérieur à la taille réelle de la charge compressée. Cette valeur n'étant pas validée, cette manipulation entraîne l'allocation d'un tampon surdimensionné, rempli de mémoire de tas non initialisée.

La mémoire divulguée peut contenir, selon ce qui occupait précédemment le tas, des fragments de mots de passe en texte clair, des identifiants, des clés API ou d'autres données sensibles conservées dans le tas.

La fuite est encore amplifiée par la logique de gestion des erreurs de MongoDB. Lorsqu'un objet BSON malformé envoyé ne contient pas de caractère de terminaison nul, le serveur continue à analyser la mémoire jusqu'à en rencontrer un. En cas d'échec de l'analyse, le serveur renvoie une réponse d'erreur qui inclut le message d'origine et le contenu de la mémoire de tas divulguée.

Au moment de la rédaction de cet article, Shodan recense plus de 213 000 instances MongoDB exposées sur Internet, tandis que Censys en recense plus de 87 000, illustrant l'ampleur de l'exposition.

Disponibilité d'exploits publics

Quelques jours après la divulgation, un exploit fonctionnel a été publié sur GitHub. Cet exploit repose sur l'envoi répété de requêtes compressées mal formées, ce qui permet aux attaquants de divulguer progressivement de larges portions de mémoire de tas.

Versions concernées

MongoBleed affecte les versions MongoDB suivantes :

  • 8.2.0 à 8.2.2

  • 8.0.0 à 8.0.16

  • 7.0.0 à 7.0.27

  • 6.0.0 à 6.0.26

  • 5.0.0 à 5.0.31

  • 4.4.0 à 4.4.29

  • Toutes les versions v3.6, v4.0 et v4.2

Analyse du correctif

Le correctif en une ligne calcule la taille réelle du message à partir de la taille de sortie, au lieu de se fier uniquement à la valeur fournie dans l'objet BSON OP_COMPRESSED. Cela garantit qu'aucune mémoire supplémentaire n'est allouée au-delà de la taille réelle du message.

-    return {output.length()};
+    return length;

Atténuation

Mise à niveau vers une version corrigée

Un correctif a été introduit dans les versions 8.2.3, 8.0.17, 7.0.28, 6.0.27, 5.0.32 et 4.4.30.
La mise à niveau vers l'une de ces versions corrige complètement la vulnérabilité.

Réduction de l'exposition grâce à la segmentation du réseau

Dans l'attente de l'application d'un correctif, l'exposition peut être fortement réduite par une segmentation du réseau consistant à :

  • bloquer l'accès Internet entrant aux instances MongoDB sur le port TCP/27017 ;

  • autoriser uniquement les connexions provenant de sources explicitement approuvées.

Identification des hôtes vulnérables avec Akamai Guardicore Segmentation

Les requêtes Akamai Guardicore Segmentation Insight suivantes permettent d'identifier les hôtes exécutant des versions MongoDB vulnérables.

Actifs Linux

WITH LINUX AS (
  SELECT DISTINCT name, version, source
  FROM deb_packages 
  WHERE name = 'mongodb-org-server'
  UNION ALL
  SELECT DISTINCT name, version, source
  FROM rpm_packages
  WHERE name = 'mongodb-org-server'
),
PARSED AS (
  SELECT name, source, version,
    CAST(REGEX_MATCH(version, '([0-9]+)\.([0-9]+)\.([0-9]+)', 1) AS INTEGER) AS major,
    CAST(REGEX_MATCH(version, '([0-9]+)\.([0-9]+)\.([0-9]+)', 2) AS INTEGER) AS minor,
    CAST(REGEX_MATCH(version, '([0-9]+)\.([0-9]+)\.([0-9]+)', 3) AS INTEGER) AS patch
  FROM LINUX
)
SELECT name, source, version
FROM PARSED
WHERE
    (major = 8 AND minor = 2 AND patch BETWEEN 0 AND 2)
    OR
    (major = 8 AND minor = 0 AND patch BETWEEN 0 AND 16)
    OR
    (major = 7 AND minor = 0 AND patch BETWEEN 0 AND 27)
    OR
    (major = 6 AND minor = 0 AND patch BETWEEN 0 AND 26)
    OR
    (major = 5 AND minor = 0 AND patch BETWEEN 0 AND 31)
    OR
    (major = 4 AND minor = 4 AND patch BETWEEN 0 AND 29)
    OR
    (major = 3 AND minor = 6)
    OR
    (major = 4 AND minor IN (0, 2))

Actifs Windows

WITH WINDOWS AS (
  WITH MONGO_PROGRAMS AS (
  SELECT DISTINCT name, version, install_source AS source, REGEX_MATCH(name, 'MongoDB [0-9].*', 0) AS mongo_match
  FROM programs
  WHERE name LIKE "MongoDB%"
  )
  SELECT DISTINCT name, version, source
  FROM MONGO_PROGRAMS
  WHERE LENGTH(mongo_match) > 0
),
PARSED AS (
  SELECT name, source, version,
    CAST(REGEX_MATCH(version, '([0-9]+)\.([0-9]+)\.([0-9]+)', 1) AS INTEGER) AS major,
    CAST(REGEX_MATCH(version, '([0-9]+)\.([0-9]+)\.([0-9]+)', 2) AS INTEGER) AS minor,
    CAST(REGEX_MATCH(version, '([0-9]+)\.([0-9]+)\.([0-9]+)', 3) AS INTEGER) AS patch
  FROM WINDOWS
)
SELECT name, source, version
FROM PARSED
WHERE
    (major = 8 AND minor = 2 AND patch BETWEEN 0 AND 2)
    OR
    (major = 8 AND minor = 0 AND patch BETWEEN 0 AND 16)
    OR
    (major = 7 AND minor = 0 AND patch BETWEEN 0 AND 27)
    OR
    (major = 6 AND minor = 0 AND patch BETWEEN 0 AND 26)
    OR
    (major = 5 AND minor = 0 AND patch BETWEEN 0 AND 31)
    OR
    (major = 4 AND minor = 4 AND patch BETWEEN 0 AND 29)
    OR
    (major = 3 AND minor = 6)
    OR
    (major = 4 AND minor IN (0, 2))

Désactivation des requêtes compressées (mesure temporaire)

Si la mise à niveau ou la segmentation n'est pas possible, les requêtes compressées zlib peuvent être désactivées afin d'empêcher l'exploitation. Des instructions détaillées sont disponibles dans le MongoDB Issue Tracker officiel.

Résumé

MongoBleed (CVE-2025-14847) est une vulnérabilité MongoDB exploitable à distance qui permet à des attaquants non authentifiés de divulguer de la mémoire de tas non initialisée.

Avec des exploits publics disponibles et des dizaines de milliers d'instances exposées sur Internet, le risque de fuite de données sensibles est immédiat. Les organisations exécutant des versions affectées doivent passer sans attendre à une version corrigée ou déployer des règles de segmentation du réseau afin de limiter leur exposition.

Restez à l'écoute

Le groupe Security Intelligence d'Akamai continuera de surveiller, générer des rapports et créer des mesures d'atténuation des menaces telles que celles-ci pour nos clients et la communauté de sécurité dans son ensemble. Pour rester au fait des dernières actualités du groupe Security Intelligence d'Akamai, consultez notre page d'accueil de recherche et suivez-nous sur les réseaux sociaux.

Mots-clés

Partager

Articles de blog associés

Recherche sur la sécurité
L'IA impose un retour à zéro : repenser la défense des applications Web et des API
April 22, 2025
Les acteurs des menaces déploient désormais des chaînes de destruction générées par l'IA qui automatisent l'ensemble du cycle de vie des attaques. Découvrez comment protéger votre entreprise.
Cybersécurité
Dans les coulisses du correctif : analyse de l'exploitation « in-the-wild » de la vulnérabilité CVE-2026-21513
February 20, 2026
Découvrez comment PatchDiff-AI a mis au jour la cause première de la CVE-2026-21513, une vulnérabilité MSHTML activement exploitée, et comment APT28 l'a employée dans des attaques réelles.
Recherche sur la sécurité
IA et découverte des vulnérabilités : un appel à la prudence et à la supervision humaine
March 13, 2026
Découvrez pourquoi une supervision humaine est essentielle à une utilisation responsable des systèmes d'IA pour l'identification des failles de sécurité, et comment éviter les faux positifs.