Red Hot Cyber

Sicurezza informatica, cybercrime, hack
news, e altro ancora

NPM: Basta aggiungere un trattino e via con il malware!

Lo strumento CLI npm ha un meccanismo molto conveniente ed efficace per la protezione dai pacchetti vulnerabili: verifica automatica dei pacchetti durante l’installazione (utilizzando npm install), che può essere eseguita manualmente utilizzando il comando npm audit. 

Tuttavia, i ricercatori di JFrog hanno scoperto che questo meccanismo di protezione può essere facilmente aggirato aggiungendo un trattino alla versione del pacchetto (ad esempio, 1.2.3-a), che di solito viene utilizzato per indicare un pacchetto pre-rilascio. 

Ciò è dovuto al fatto che l’ endpoint Bulk Advisory non è in grado di ottenere avvisi di sicurezza per i pacchetti la cui versione contiene un trattino (-) seguito da caratteri aggiuntivi.

Sebbene i manutentori del progetto considerino l’aggiunta di un trattino al nome come funzionalità necessaria per distinguere tra le versioni normali e pre-rilascio dei pacchetti, questo apre un nuovo vettore di attacco per gli aggressori che cercano di attaccare gli utenti dell’ecosistema npm. 

Gli hacker possono sfruttare questa scappatoia incorporando deliberatamente codice vulnerabile o dannoso in pacchetti con funzionalità utili che gli sviluppatori ignari possono quindi installare, affermano i ricercatori.

Come esempio, i ricercatori hanno citato il pacchetto cruddl, che presentava una vulnerabilità critica (CVE-2022-36084) in una delle sue versioni precedenti. Durante l’installazione di questa versione della CLI, npm avvisa lo sviluppatore che il pacchetto contiene una vulnerabilità critica.

Tuttavia, se provi a installare una versione pre-release di cruddl 2.0.0 CLI, npm non verrà visualizzato alcun avviso, anche se questa versione del pacchetto è interessata.

Alla conclusione del rapporto, JFrog ha raccomandato agli sviluppatori e agli ingegneri DevOps di non installare mai pacchetti npm pre-release a meno che non siano sicuri che la fonte sia affidabile al 100%. 

Vale la pena notare che anche in questo caso si consiglia di ripristinare il prima possibile una versione non di anteprima del pacchetto.