Targeted attacks Number of transitive dependents for the 5 most “vulnerable” packages > 450k > 300k inherits.js, erubis, rack string_decoder, sigmund, is_array
Targeted attacks Number of transitive dependents for the 5 most “vulnerable” packages > 450k > 300k string_decoder, sigmund, is_array 30 LOCs! inherits.js, erubis, rack
Targeted attacks Number of transitive dependents for the 5 most “vulnerable” packages > 450k > 300k string_decoder, sigmund, is_array Last Commit: 2012 inherits.js, erubis, rack
What can developers do? • Understand the effect of including a dependency • For small, inherits.js-like packages just re-implement it • Actively monitor vulnerabilities in the transitive closure • More intelligent, integrated tools • Better governance of dependency management practices
What can researchers do? • Better tools: • increase visibility of transitive includes • connect ecosystems to security advisories • dependency health and ecosystem stability ratings • Better analysis: understand which parts of the dependency code are actually used • A semantic versioning system that everybody agrees upon • Qualitative work: How developers approach dependency management? • Replicate in other ecosystems