Akamai acquisirà LayerX per imporre il controllo sull'uso dell'IA su qualsiasi browser. Visualizza dettagli

CVE-2025-14847: tutto ciò che dovete sapere su MongoBleed

I clienti di Akamai Hunt interessati hanno già ricevuto una mappatura dettagliata delle risorse vulnerabili con le procedure per la mitigazione.

Condividi

Analisi riassuntiva

  • Il 19 dicembre 2025, nelle istanze di MongoDB è stata notata pubblicamente una nuova vulnerabilità che interessa la maggior parte delle implementazioni di MongoDB.

  • La vulnerabilità, denominata MongoBleed, risiede nella gestione dei messaggi compressi in formato zlib da parte di MongoDB e consente ai client non autenticati di estrapolare la memoria heap non inizializzata dal database.

  • A questa CVE è stato assegnato un punteggio CVSSv4 di 8,7.

  • Il 29 dicembre 2025, la CISA (Cybersecurity and Infrastructure Security Agency) ha aggiunto la CVE-2025-14847 al suo catalogo KEV (Known Exploited Vulnerabilities), confermando che questa vulnerabilità viene sfruttata attivamente. Contemporaneamente, i dati telemetrici di Akamai mostrano forme di comunicazione MongoDB approssimativamente nel 62% delle reti aziendali.

In questo blog, viene fornita una descrizione tecnica di MongoBleed, una panoramica delle versioni di MongoDB interessate (insieme all'analisi delle patch) e una guida pratica alla mitigazione, incluse le query di Akamai Guardicore Segmentation Insight che consentono di identificare le risorse vulnerabili.

Dettagli della vulnerabilità

MongoBleed ha avuto origine dal modo in cui MongoDB elabora i messaggi dei protocolli cablati compressi, una funzione che è abilitata per impostazione predefinita.

MongoDB comunica utilizzando messaggi contrassegnati con l'opcode OP_MSG, in cui i payload delle richieste sono codificati in formato binario JSON (BSON). Quando viene inviato un messaggio compresso, il payload OP_MSG originale viene compresso all'interno di una struttura OP_COMPRESSED.

Un messaggio OP_COMPRESSED include il payload OP_MSG e le dimensioni previste del payload non compresso.


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 criminale può manipolare il campo uncompressedSize, rendendolo più grande rispetto alle dimensioni effettive del payload compresso. Poiché questo valore non viene verificato, questa manipolazione comporta un'allocazione del buffer sovradimensionata, che viene popolata con una quantità di memoria heap non inizializzata,

da cui è possibile estrapolare, ad esempio, frammenti di password di testo non crittografato, credenziali, chiavi API o altri dati sensibili memorizzati, a seconda di quanto era presente in precedenza nell'heap.

La fuga di dati viene ulteriormente amplificata dalla logica di gestione degli errori di MongoDB. Se l'oggetto BSON inviato che risulta errato non contiene un valore di terminazione null, il server analizzerà la memoria fino a quando non ne rileva una. Se l'analisi non riesce, il server restituisce una risposta di errore che include il messaggio originale e il contenuto dell'heap.

Al momento della redazione di questo articolo, Shodan segnala la presenza di oltre 213.000 istanze di MongoDB visibili su Internet, mentre Censys segnala più di 87.000 istanze, mettendo in evidenza l'ampia esposizione della vulnerabilità.

Disponibilità di exploit pubblici

Pochi giorni dalla sua divulgazione, è stato pubblicato un exploit attivo su GitHub, che si basa sull'invio ripetuto di richieste compresse errate, consentendo ai criminali di esfiltrare progressivamente notevoli parti della memoria heap.

Versioni interessate

MongoBleed riguarda le seguenti versioni di 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

  • Tutte le versioni 3.6, 4.0 e 4.2

Analisi delle patch

La patch a una riga calcola la dimensione del messaggio derivante dalla dimensione di output, invece di fare semplicemente riferimento al valore fornito nel messaggio OP_COMPRESSED dell'oggetto BSON per garantire che non venga assegnata alcuna memoria aggiuntiva oltre le dimensioni effettive del messaggio.

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

Mitigazione

Aggiornamento ad una versione corretta con patch

Una patch è stata introdotta nelle versioni 8.2.3, 8.0.17, 7.0.28, 6.0.27, 5.0.32 e 4.4.30.
L'aggiornamento ad una di queste versioni risolve completamente la vulnerabilità rilevata.

Ridurre l'esposizione con la segmentazione della rete

Fino a quando non viene applicata una patch, l'esposizione può essere significativamente ridotta tramite la segmentazione:

  • Bloccando l'accesso Internet in entrata alle istanze MongoDB sulla porta TCP/27017

  • Effettuando le connessioni solo se provenienti da fonti esplicitamente attendibili

Identificare gli host vulnerabili con Akamai Guardicore Segmentation

Le seguenti query di Akamai Guardicore Segmentation Insight identificano gli host che eseguono istanze MongoDB vulnerabili.

Risorse 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))

Risorse 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))

Disattivare le richieste compresse (mitigazione temporanea)

Se non è possibile aggiornare o segmentare l'istanza, le richieste compresse in formato zlib possono essere disattivate per evitare lo sfruttamento. Per istruzioni dettagliate, potete consultare il documento ufficiale MongoDB Issue Tracker.

Riepilogo

MongoBleed (CVE-2025-14847) è una vulnerabilità MongoDB che consente ai criminali non autenticati di esfiltrare da remoto la memoria heap non inizializzata.

Con gli exploit pubblici disponibili e decine di migliaia di istanze visibili su Internet, il rischio di esfiltrazione dei dati sensibili è immediato. Le organizzazioni che eseguono le versioni interessate devono effettuare l'aggiornamento ad una versione corretta con patch o applicare alcune regole di segmentazione della rete per ridurre al minimo l'esposizione dei dati sensibili.

Tenetevi al passo

L'Akamai Security Intelligence Group continuerà a monitorare, segnalare e creare mitigazioni per minacce come queste per i clienti dell'azienda e per la più vasta comunità della sicurezza. Per tenervi aggiornati sulle ultime novità dell'Akamai Security Intelligence Group, potete consultare la nostra pagina relativa ai lavori di ricerca e seguirci sui social media.

Tag

Condividi

Post del blog correlati

Cybersicurezza
Esame dell'anno 2024: i dati di oggi con uno sguardo al domani
December 03, 2024
Sei esperti di cybersicurezza di Akamai riflettono sulle tendenze e sugli eventi più significativi del 2024, fornendo, al contempo, il loro consapevole punto di vista su cosa aspettarsi nel 2025.
Sicurezza
L'innovazione e i suoi rischi: le tendenze degli attacchi nei servizi finanziari
L'ultimo rapporto sullo stato di Internet - Security esamina la crescente minaccia dei rischi per la sicurezza esistenti ed emergenti per il settore dei servizi finanziari e dei rispettivi clienti.
Ricerca sulla sicurezza
Come proteggere il codice lato client e certificare l'autenticità della raccolta dei dati
July 08, 2025
Scoprite come mantenere la resilienza informatica e l'integrità della raccolta dei dati con questi metodi di protezione del codice JavaScript lato client.