
Proof-of-concept exploit per una vulnerabilità RCE critica in n8n (CVE-2025-68613), che dimostra l'esecuzione arbitraria di comandi tramite iniezione di espressioni nei nodi del workflow.
Security Advisory: Vulnerabilità critica di esecuzione remota di codice in n8n (CVE-2025-68613)
È stata identificata una vulnerabilità critica nello strumento di automazione dei flussi di lavoro n8n che consente l'esecuzione arbitraria di codice. Gli utenti autenticati con permessi per creare o modificare flussi di lavoro possono sfruttare questa falla per ottenere il controllo sul sistema che esegue l'istanza n8n.
Riepilogo
CVE ID CVE-2025-68613 Vulnerabilità Controllo improprio delle risorse di codice gestite dinamicamente Gravità Critico Impatto Esecuzione arbitraria di comandi, compromissione completa del sistema Causa principale Il valutatore di espressioni non sanifica l'accesso all'oggetto di processo Node.js sottostante (this.process), consentendo a un attaccante di richiedere e utilizzare moduli di sistema come child_process.
Impatto
Un attaccante che sfrutti con successo questa vulnerabilità può ottenere quanto segue:
Versioni interessate e corrette Stato Versioni Vulnerabile Tutte le versioni precedenti alla 1.122.0 Corretta Versione 1.122.0 e successive
Mitigazione
È fondamentale aggiornare immediatamente l'istanza n8n alla versione 1.122.0 o successiva per risolvere questa vulnerabilità.
Dettagli dell'exploit per CVE-2025-68613
Questa directory contiene una proof-of-concept per la vulnerabilità di esecuzione remota di codice (RCE) in n8n (CVE-2025-68613).
Requisiti
Passaggi per riprodurre
Creare un flusso di lavoro:
Accedi all'istanza n8n vulnerabile.
Fai clic su "Aggiungi flusso di lavoro" per avviare un nuovo flusso di lavoro.
Aggiungere nodi:
Aggiungi un nodo "Manual Trigger" alla tela.
Aggiungi un nodo "Set" e collegalo all'uscita del nodo "Manual Trigger".
Configurare il nodo Set:
Fai clic sul nodo "Set" per aprire il relativo pannello di configurazione.
Fai clic su "Aggiungi valore" e seleziona "Stringa" dal menu a discesa.
Imposta il campo Nome del nuovo valore su result.
Fai clic sull'icona "=" accanto al campo "Valore" per passare alla modalità espressione.
Iniettare il payload dell'exploit:
Nel campo espressione per il valore result, incolla il seguente payload:
Exploit:
{{ (function(){ return this.process.mainModule.require('child_process').execSync('id').toString() })() }}
Eseguire e verificare:
Fai clic sul pulsante "Esegui passo".
Controlla l'output del "SetScreenshot 2025-12-23 at 15 18 56
" nodo. Se l'exploit ha successo, vedrai l'output del comando id, confermando l'esecuzione di codice.
