Изследователи от компания Aqua Security публикуваха резултатите от анализа на статистиката за 50 хиляди най-товарените пакети в хранилището NPM. 7500 (15%) от най-товарените пакети са свързани с остарели пакети и прекратени проекти. За опростяване на идентифицирането на остарели пакети сред зависимостите, използвани в проекта ви, е предложен инструментът Dependency-Deprecated-Checker, публикуван под лиценз MIT.
В 4100 (8.2%) от разгледаните пакети в зависимостната верига се откриха пакети, официално обявени за остарели в NPM или свързани с остарели проекти (например, пакетът request е маркиран като остарял, но продължава да се използва като пряка зависимост от 55000 пакета). 2300 (4.6%) пакета са свързани с хранилища в GitHub, които са преминали в архивен режим (разработката е прекратена, например, хранилището на пакета through е маркирано като архивно, но се използва като пряка зависимост от 3000 пакета). 1100 (2.2%) пакета препращат към вече несъществуващи хранилища, достъпът до които води до връщане на 404 грешка. 3100 (6.2%) пакета не съдържат информация за хранилище.

В абсолютни числа разпространението на остарели пакети и пакети без линкове към хранилища в NPM се екстраполира на около 2.1 милиарда Изтегляния седмично. Използването на остарели пакети и изоставени проекти като зависимости е свързано с риск от наличие на нерешени уязвимости, особено с оглед на практиката на някои разработчици за тайно отстраняване на уязвимости без присвояване на CVE идентификатор и без ясно акцентиране на решаването на проблема.
Източник: opennet.ru
