Forscher von Aqua Security haben die Ergebnisse einer Analyse der Statistiken über 50.000 der am häufigsten heruntergeladenen Pakete im NPM-Repository veröffentlicht. 7500 (15 %) der am häufigsten heruntergeladenen Pakete sind mit veralteten Paketen und eingestellten Projekten verbunden. Um die Identifizierung veralteter Pakete unter den Abhängigkeiten, die in eigenen Projekten verwendet werden, zu erleichtern, wurde das Tool Dependency-Deprecated-Checker vorgeschlagen, das unter der MIT-Lizenz veröffentlicht wurde.
In 4100 (8,2 %) der untersuchten Pakete in der Abhängigkeitskette wurden Pakete identifiziert, die offiziell in NPM als veraltet oder mit alten Projekten verbunden sind (zum Beispiel ist das Paket request als veraltet gekennzeichnet, wird aber weiterhin als direkte Abhängigkeit in 55.000 Paketen verwendet). 2300 (4,6 %) Pakete sind mit Repositories auf GitHub verbunden, die in den Status archiviert überführt wurden (Entwicklung eingestellt, beispielsweise ist das Repository des Pakets through als archiviert markiert, wird aber als direkte Abhängigkeit in 3000 Paketen genutzt). 1100 (2,2 %) Pakete verweisen auf bereits nicht mehr existierende Repositories, deren Anfragen zu einem 404-Fehler führen. 3100 (6,2 %) Pakete enthalten keine Informationen über ein Repository.

In absolutem Ausdruck wird die Verbreitung von veralteten Paketen und Paketen ohne Referenzen zu Repositories in NPM auf etwa 2,1 Milliarden Downloads pro Woche hochgerechnet. Die Verwendung von veralteten Paketen und von nicht mehr unterstützten Projekten als Abhängigkeiten birgt das Risiko ungepatchter Schwachstellen, insbesondere angesichts der von einigen Entwicklern angewandten Praxis, Schwachstellen heimlich zu beheben, ohne eine CVE-Identifikation zu vergeben und ohne deutlich auf die Behebung des Problems hinzuweisen.
Quelle: opennet.ru
