Onderzoekers van Aqua Security hebben de resultaten gepresenteerd van hun analyse van de statistieken van de 50.000 meest gedownloade pakketten in de NPM-repository. 7.500 (15%) van de meest gedownloade pakketten bleken verband te houden met verouderde pakketten en projecten die niet meer bestaan. Om het identificeren van verouderde pakketten tussen de afhankelijkheden in een project te vergemakkelijken, is de utility Dependency-Deprecated-Checker voorgesteld, die onder de MIT-licentie is gepubliceerd.
In 4.100 (8,2%) van de onderzochte pakketten in de afhankelijkheidsketen zijn pakketten gevonden die officieel door NPM als verouderd zijn verklaard of die verband houden met verouderde projecten (bijvoorbeeld, het pakket request is gemarkeerd als verouderd maar wordt nog steeds gebruikt als een directe afhankelijkheid door 55.000 pakketten). 2.300 (4,6%) pakketten zijn gerelateerd aan repositories op GitHub die zijn geclassificeerd als archief (ontwikkeling is gestopt, bijvoorbeeld, de repository van het pakket through is gemarkeerd als een archief maar wordt gebruikt als een directe afhankelijkheid door 3.000 pakketten). 1.100 (2,2%) pakketten verwijzen naar reeds niet-bestaande repositories, waarvan het aanspreken resulteert in een 404-fout. 3.100 (6,2%) pakketten bevatten geen informatie over de repository.

In absolute termen is de verspreiding van verouderde pakketten en pakketten zonder verwijzingen naar repositories in NPM geëxtrapoleerd tot ongeveer 2,1 miljard downloads per week. Het gebruik van verouderde pakketten en verlaten projecten als afhankelijkheid brengt het gevaar met zich mee van onverholpen kwetsbaarheden, vooral gezien de praktijk van sommige ontwikkelaars om kwetsbaarheden stilletjes op te lossen zonder een CVE-identificatienummer toe te wijzen en zonder expliciete aandacht voor het oplossen van het probleem.
Bron: opennet.ru
