I ricercatori dell'azienda Aqua Security hanno pubblicato i risultati di un'analisi statistica su 50.000 dei pacchetti più scaricati nel repository NPM. 7500 (15%) dei pacchetti più scaricati sono risultati legati a pacchetti obsoleti e progetti che hanno cessato di esistere. Per semplificare l'identificazione dei pacchetti obsoleti tra le dipendenze utilizzate nel proprio progetto, è stato proposto un'utilità chiamata Dependency-Deprecated-Checker, pubblicata con licenza MIT.
In 4100 (8,2%) dei pacchetti esaminati nella catena delle dipendenze sono stati identificati pacchetti ufficialmente dichiarati obsoleti su NPM o legati a progetti obsoleti (ad esempio, il pacchetto request è contrassegnato come obsoleto, ma continua a essere utilizzato come dipendenza diretta da 55000 pacchetti). 2300 (4,6%) pacchetti sono legati a repository su GitHub, che sono stati convertiti in archivi (sviluppo interrotto, ad esempio, il repository del pacchetto through è contrassegnato come archivio, ma viene utilizzato come dipendenza diretta da 3000 pacchetti). 1100 (2,2%) pacchetti fanno riferimento a repository già non esistenti, accedere ai quali porta al ritorno di un errore 404. 3100 (6,2%) pacchetti non contengono informazioni sul repository.

In termini assoluti, la diffusione di pacchetti obsoleti e pacchetti privi di riferimenti ai repository in NPM è stata estrapolata a circa 2,1 miliardi di download a settimana. L'uso di pacchetti obsoleti e di progetti non mantenuti come dipendenze comporta il rischio di vulnerabilità non corrette, soprattutto considerando la pratica adottata da alcuni sviluppatori di rimuovere silenziosamente le vulnerabilità senza assegnare un identificatore CVE e senza dare enfasi esplicita alla risoluzione del problema.
Fonte: opennet.ru
