7 Novembre 2024: Dat Phung ha identificato una vulnerabilità critica in Mongoose e ha inviato un rapporto di sicurezza a Snyk.
26 Novembre 2024: Mongoose ha rilasciato la versione 8.8.3 per affrontare e correggere questa vulnerabilità.
2 Dicembre 2024: Il National Vulnerability Database (NVD) ha divulgato CVE-2024-53900 per questa vulnerabilità.
17 Dicembre 2024: Analizzando la patch 8.8.3 di Mongoose, Dat Phung ha trovato un bypass che abilitava ancora RCE (Remote Code Execution). Un rapporto di sicurezza dettagliato è stato inviato a Tidelift.
13 Gennaio 2025: Mongoose ha rilasciato la versione 8.9.5, introducendo una patch migliorata che ha affrontato efficacemente il bypass.
15 Gennaio 2025: Il National Vulnerability Database (NVD) ha ufficialmente divulgato CVE-2025-23061, sottolineando la gravità della vulnerabilità appena identificata.
Questa vulnerabilità esiste a causa di una correzione incompleta per CVE-2024-53900. Mentre l'iniezione diretta di $where è bloccata, gli aggressori possono aggirare questa protezione annidando operatori $where all'interno di operatori logici come $and, $or, ecc.
Il flusso di codice vulnerabile:
L'utente fornisce input tramite il parametro match di populate()
L'applicazione utilizza input utente non sanitizzato direttamente nella query match
Mongoose non riesce a sanitizzare $where quando annidato all'interno di operatori logici
L'aggressore esegue JavaScript arbitrario sul server MongoDB
Impatto
Divulgazione di Informazioni: Accesso a dati sensibili senza autorizzazione adeguata
Bypass dell'Autenticazione: Recupero di informazioni riservate agli amministratori
Esecuzione di Codice Arbitrario: Esecuzione di JavaScript sul server MongoDB
Modifica dei Dati: Possibilità di modificare i record del database
Configurazione ed Esecuzione del PoC
Prerequisiti
Node.js >= 14
MongoDB in esecuzione localmente o accessibile tramite stringa di connessione
Installazione
root@kitploit:~
# Install dependencies
npm install
# Optional: Use specific MongoDB URI
export MONGODB_URI="mongodb://localhost:27017/mongoose_cve_poc"
Questo PoC è fornito esclusivamente a scopo educativo. L'accesso non autorizzato a sistemi informatici è illegale. Utilizzalo solo su sistemi di tua proprietà o per i quali hai esplicita autorizzazione a testare.