Des chercheurs de la société Aqua Security ont publié les résultats d'une analyse des statistiques concernant les 50 000 paquets les plus téléchargés dans le référentiel NPM. 7500 (15 %) des paquets les plus téléchargés sont liés à des paquets obsolètes et à des projets ayant cessé d'exister. Pour faciliter l'identification des paquets obsolètes parmi les dépendances utilisées dans un projet, un utilitaire appelé Dependency-Deprecated-Checker a été proposé, publié sous licence MIT.
Dans 4100 (8,2 %) des paquets examinés dans la chaîne de dépendances, des paquets officiellement déclarés obsolètes dans NPM ou liés à des projets obsolètes ont été identifiés (par exemple, le paquet request est marqué comme obsolète, mais continue d'être utilisé comme dépendance directe dans 55000 paquets). 2300 (4,6 %) des paquets sont liés à des dépôts GitHub qui ont été archivés (le développement a cessé, par exemple, le dépôt du paquet through est marqué comme archivé, mais est utilisé comme dépendance directe dans 3000 paquets). 1100 (2,2 %) des paquets réfèrent à des dépôts qui n'existent plus, entraînant un retour d'erreur 404. 3100 (6,2 %) des paquets ne contiennent pas d'informations sur le dépôt.

En valeur absolue, la propagation des paquets obsolètes et des paquets sans liens vers des dépôts sur NPM est extrapolée à environ 2,1 milliards de téléchargements par semaine. L'utilisation de paquets obsolètes et de projets laissés sans support comme dépendance comporte le risque de contenir des vulnérabilités non corrigées, en particulier compte tenu de la pratique adoptée par certains développeurs consistant à masquer la correction des vulnérabilités sans attribuer d'identifiant CVE et sans souligner explicitement la résolution du problème.
Source : opennet.ru
