
Node.js è un ambiente di runtime open-source utilizzato per implementare funzionalità server in JavaScript.
Un pacchetto software specifico all'interno di Node.js contiene una funzione vulnerabile che gestisce la deserializzazione e che causa l'esecuzione di comandi non autorizzati se il client fornisce un cookie appositamente modificato.
Questa vulnerabilità è stata replicata e può potenzialmente lanciare una reverse shell, resa possibile dai dati di input non sanificati letti da un cookie nella richiesta di un client. Il client può modificare i propri cookie, iniettare un payload non sicuro contenente un comando bash e inviarlo al server, che lo eseguirà alla cieca. Ciò può consentire a utenti non autorizzati di accedere a database o a interi sistemi.
Le implicazioni etiche di questo tipo di vulnerabilità risiedono nei dati accessibili nei database del server backend. A seconda dei dati, ciò può essere dannoso per la sicurezza di un utente e può compromettere l'affidabilità e la reputazione di un'azienda. Per questo motivo, individuare le vulnerabilità prima di altri attaccanti è importante. Sono disponibili diversi strumenti, come Snyk, Burp Suite e altre opzioni a pagamento, per identificare queste vulnerabilità.
Il modo migliore per mitigare questa vulnerabilità è praticare una corretta sanificazione degli input e interrompere qualsiasi utilizzo della funzione vulnerabile unserialise all'interno di node.js. Si consiglia il sostituto di questa funzione vulnerabile, JSON.parse.