
Exploit proof-of-concept per CVE-2025-56015, un sandbox escape e RCE in GenieACS. Automatizza la creazione di provision maligne, il mapping dei preset e la consegna di reverse shell tramite simulazione CWMP.
Proof-of-Concept dell'exploit per CVE-2025-56015, una vulnerabilità critica di sandbox escape e code injection in GenieACS che consente l'esecuzione arbitraria di JavaScript nel contesto di provisioning. Sfruttando la catena del prototipo declare.constructor.constructor, un attaccante può evadere dall'ambiente JavaScript limitato, accedere ai moduli Node.js e sottostanti e ottenere la piena .
child_processnetTipo di exploit: Remoto
Autenticazione: Richiede accesso di rete a GenieACS NBI (Porta 7557) e ACS (Porta 7547)
Impatto: Compromissione completa del server, esecuzione di reverse shell, pivot di rete
L'endpoint NBI sulla porta 7557 consente l'accesso non autenticato per recuperare dati sensibili. Esempi di endpoint API includono:
Ottenere dati utenti:
$ curl 'http://myhost:7557/users/'
La risposta include informazioni sensibili come hash e salt delle password.
Ottenere elenco file:
$ curl 'http://myhost:7557/files/'
Ottenere dettagli provision:
$ curl 'http://myhost:7557/provisions/'
Inoltre, i file possono essere scaricati direttamente dal file server (Porta 7567) senza autenticazione:
wget 'http://myhost:7567/SCR-20250623-qjoi.png'
Un endpoint di debug di test all'interno di una sandbox limita l'accesso diretto all'oggetto process di Node.js. Tuttavia, è possibile bypassare questa restrizione tramite l'attraversamento di oggetti, utilizzando in particolare la catena dei costruttori (ad es., constructor.constructor).
Chiamando questa catena su oggetti disponibili (come declare), gli attaccanti possono evadere dal contesto della sandbox e ottenere l'accesso all'oggetto globale process. Questo concede la capacità di leggere variabili d'ambiente ed eseguire comandi arbitrari.
RCE post-autenticazione:
Gli script di provision possono essere eseguiti direttamente tramite l'endpoint API /api/devices/{device_id}/tasks per ottenere una shell. Le richieste inviate solo tramite NBI vengono accodate ma non eseguite immediatamente.
RCE pre-autenticazione (RCE non autenticata): Utilizzando l'API NBI, un attaccante può creare provision e preset senza autenticazione. Il preset serve per eseguire automaticamente gli script di provision quando un dispositivo invia un evento tramite l'interfaccia CWMP.
Passaggi per lo sfruttamento:
PUT /provisions/{nome_provision}.PUT /presets/{nome_preset} (collegandolo a un evento come "Periodic").declare.constructor.constructorPrima di eseguire l'exploit, aggiornare le configurazioni ACS_URL, NBI_URL, LHOST e LPORT direttamente all'interno di exploit.py per adattarle al proprio ambiente e alle impostazioni della macchina attaccante.
# Avviare il listener sulla macchina attaccante
nc -lvnp 4444
# Eseguire l'exploit
python3 exploit.py

requests (pip install requests)Questo codice è fornito esclusivamente a scopo educativo e per test di sicurezza autorizzati.
L'utilizzo non autorizzato contro sistemi di cui non si possiede la proprietà o per cui non si ha esplicito permesso di test è illegale e non etico.
Vulnerabilità scoperte ed exploit sviluppati da:
Da Datafarm Co., Ltd.
Sviluppato da DF Pentest Team • Thailandia