CVE-2025-14847: Todo lo que necesita saber sobre MongoBleed

Los clientes afectados de Akamai Hunt ya han recibido una asignación detallada de los activos vulnerables con pasos de mitigación a seguir.

Compartir

Resumen ejecutivo

  • El 19 de diciembre de 2025, se informó públicamente de una nueva vulnerabilidad que afecta a la mayoría de las implementaciones de MongoDB en las instancias de MongoDB.

  • La vulnerabilidad, denominada MongoBleed, reside en el tratamiento que hace MongoDB de los mensajes comprimidos con zlib y permite a los clientes no autenticados filtrar la memoria de pila no inicializada de la base de datos.

  • A CVE se le ha asignado una puntuación de CVSSv4 de 8,7.

  • El 29 de diciembre de 2025, la Agencia de Seguridad de Infraestructura y Ciberseguridad (CISA) añadió la CVE-2025-14847 a su catálogo de Vulnerabilidades Explotadas Conocidas (KEV), lo que confirma su explotación activa. Al mismo tiempo, la telemetría de Akamai muestra la comunicación MongoDB en aproximadamente el 62 % de las redes empresariales.

En esta entrada del blog, ofrecemos un desglose técnico de MongoBleed, una descripción general de las versiones de MongoDB afectadas (junto con el análisis de parches) y una guía práctica de mitigación, incluidas las consultas de Akamai Guardicore Segmentation Insight para ayudar a identificar los activos vulnerables.

Detalles de la vulnerabilidad

MongoBleed se origina a partir de la forma en que MongoDB procesa los mensajes comprimidos de protocolo de cable, una función que está habilitada de forma predeterminada.

MongoDB se comunica mediante mensajes marcados con el código de operación OP_MSG, donde las cargas de solicitud se codifican en formato JSON binario (BSON). Cuando se envía un mensaje comprimido, la carga útil original OP_MSG se envuelve dentro de una estructura OP_COMPRESSED.

Un mensaje OP_COMPRESSED incluye la carga útil OP_MSG y el tamaño esperado de la carga útil sin comprimir.


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 atacante puede manipular el campo uncompressedSize, haciendo que sea mayor que el tamaño real de la carga útil comprimida. Debido a que este valor no se valida, esta manipulación da como resultado una asignación de búfer sobredimensionada, rellena con memoria de pila no inicializada.

La memoria filtrada puede incluir fragmentos de contraseñas de texto claro, credenciales, claves de API o otros datos sensibles en memoria, dependiendo de lo que hubiera antes en la pila.

La fuga se amplifica aún más con la lógica de gestión de errores de MongoDB. Cuando el objeto BSON mal formado enviado no contiene un terminador nulo, el servidor analizará la memoria hasta que se encuentre uno. Cuando el análisis falla en última instancia, el servidor devuelve una respuesta de error que incluye el mensaje original y el contenido de pila filtrado.

En el momento de redactar este documento, Shodan informa de más de 213 000 instancias de MongoDB expuestas a Internet, mientras que Censys informa de más de 87 000, lo que resalta la amplia exposición de la vulnerabilidad.

Disponibilidad pública de la explotación

A los pocos días de su divulgación, se publicó una explotación exitosa en GitHub. El ataque se basa en el envío repetido de solicitudes comprimidas mal formadas, lo que permite a los atacantes filtrar progresivamente grandes porciones de memoria de pila.

Versiones afectadas

MongoBleed afecta a las siguientes versiones de MongoDB:

  • 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

  • Todas las versiones v3.6, v4.0 y v4.2

Análisis de parches

El parche de una línea calcula el tamaño del mensaje derivado del tamaño de salida, en lugar de confiar simplemente en el valor proporcionado en OP_COMPRESSED BSON. Esto garantiza que no se asigne memoria adicional más allá del tamaño real del mensaje.

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

Mitigación

Actualice a una versión con parches

Se ha introducido un parche en las versiones 8.2.3, 8.0.17, 7.0.28, 6.0.27, 5.0.32 y 4.4.30.
La actualización a una de estas versiones corrige completamente la vulnerabilidad.

Reduzca la exposición con la segmentación de la red

Hasta que se aplique un parche, la exposición se puede reducir significativamente mediante la segmentación:

  • Bloqueando el acceso de entrada a Internet a las instancias de MongoDB en el puerto TCP/27017

  • Permitiendo solo conexiones de fuentes explícitamente fiables

Identifique los hosts vulnerables con Akamai Guardicore Segmentation

Las siguientes consultas de Akamai Guardicore Segmentation Insight identifican los hosts que ejecutan instancias vulnerables de MongoDB.

Activos de 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))

Activos de 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))

Deshabilitar solicitudes comprimidas (mitigación temporal)

Si no es posible actualizar o segmentar la instancia, las solicitudes comprimidas con zlib se pueden desactivar para evitar su explotación. Puede encontrar instrucciones detalladas en la recopilación de problemas oficial de MongoDB.

Resumen

MongoBleed (CVE-2025-14847) es una vulnerabilidad de MongoDB que se puede explotar de forma remota y que permite que los atacantes no autenticados filtren la memoria de pila no inicializada.

Con los ataques públicos disponibles y decenas de miles de instancias expuestas a Internet, el riesgo de filtraciones de datos confidenciales es inmediato. Las organizaciones que ejecutan las versiones afectadas deben actualizar a una versión con parche o aplicar reglas de segmentación de red para minimizar la exposición.

Manténgase informado

El grupo de inteligencia sobre seguridad de Akamai seguirá supervisando, informando y creando mitigaciones para amenazas de este tipo tanto para nuestros clientes como para la comunidad de seguridad en general. Para mantenerse al día con más noticias de última hora del grupo de inteligencia de seguridad de Akamai, consulte nuestra página de investigación y síganos en las redes sociales.

Etiquetas

Compartir

Entradas de blog relacionadas

Investigaciones sobre seguridad
El reinicio basado en IA: replanteamiento de la defensa para aplicaciones web y API
April 22, 2025
Los atacantes ahora están implementando fases de la intrusión generadas por IA que automatizan todo el ciclo de vida de los ataques. Descubra cómo proteger a su organización.
Ciberseguridad
La corrección al detalle: análisis del ataque en su entorno natural de CVE-2026-21513
February 20, 2026
Conozca cómo PatchDiff-AI descubrió la causa raíz de la CVE-2026-21513, una vulnerabilidad de MSHTML explotada activamente, y cómo APT28 la aprovechó en ataques reales.
Investigaciones sobre seguridad
IA en la detección de vulnerabilidades: una llamada a la supervisión y la precaución humanas
March 13, 2026
Descubra por qué la supervisión humana es crucial para el uso responsable de los sistemas de IA a la hora de identificar vulnerabilidades de seguridad y saber cómo evitar falsos positivos.