Pesquisadores da Aqua Security publicaram os resultados de uma análise estatística de 50 mil dos pacotes mais baixados no repositório NPM. 7500 (15%) dos pacotes mais baixados estavam relacionados a pacotes obsoletos e projetos que deixaram de existir. Para facilitar a identificação de pacotes obsoletos entre as dependências usadas em um projeto, foi proposta uma ferramenta chamada Dependency-Deprecated-Checker, publicada sob a licença MIT.
Em 4100 (8.2%) dos pacotes analisados na cadeia de dependências, foram identificados pacotes que foram oficialmente declarados obsoletos no NPM ou estão relacionados a projetos obsoletos (por exemplo, o pacote request está marcado como obsoleto, mas continua a ser utilizado como dependência direta em 55000 pacotes). 2300 (4.6%) pacotes estão relacionados a repositórios no GitHub que foram arquivados (desenvolvimento encerrado, por exemplo, o repositório do pacote through está marcado como arquivado, mas é usado como dependência direta em 3000 pacotes). 1100 (2.2%) pacotes referenciam repositórios que já não existem, resultando em erro 404. 3100 (6.2%) pacotes não contêm informações sobre o repositório.

Em termos absolutos, a disseminação de pacotes obsoletos e pacotes sem links para repositórios no NPM é extrapolada para cerca de 2.1 bilhões de downloads por semana. O uso de pacotes obsoletos e projetos abandonados como dependências implica o risco de vulnerabilidades não corrigidas, especialmente considerando a prática adotada por alguns desenvolvedores de ocultar a remoção de vulnerabilidades sem designar um identificador CVE e sem chamar a atenção para a resolução do problema.
Fonte: opennet.ru
