Do Developers Update Their Library Dependencies? An Empirical Study on the Impact of Security Advisories on Library Migration
arXiv:1709.04621 · doi:10.1007/s10664-017-9521-5
Abstract
Third-party library reuse has become common practice in contemporary software development, as it includes several benefits for developers. Library dependencies are constantly evolving, with newly added features and patches that fix bugs in older versions. To take full advantage of third-party reuse, developers should always keep up to date with the latest versions of their library dependencies. In this paper, we investigate the extent of which developers update their library dependencies. Specifically, we conducted an empirical study on library migration that covers over 4,600 GitHub software projects and 2,700 library dependencies. Results show that although many of these systems rely heavily on dependencies, 81.5% of the studied systems still keep their outdated dependencies. In the case of updating a vulnerable dependency, the study reveals that affected developers are not likely to respond to a security advisory. Surveying these developers, we find that 69% of the interviewees claim that they were unaware of their vulnerable dependencies. Furthermore, developers are not likely to prioritize library updates, citing it as extra effort and added responsibility. This study concludes that even though third-party reuse is commonplace, the practice of updating a dependency is not as common for many developers.
37 Pages
References in corpus (1)
Cited by in corpus (43)
- Beyond Metadata: Code-centric and Usage-based Analysis of Known Vulnerabilities in Open-source Software
- A Comprehensive Study of Bloated Dependencies in the Maven Ecosystem
- A Comparative Study of Vulnerability Reporting by Software Composition Analysis Tools
- Lags in the Release, Adoption, and Propagation of npm Vulnerability Fixes
- Dependency Smells in JavaScript Projects
- A Topological Analysis of Communication Channels for Knowledge Sharing in Contemporary GitHub Projects
- The Emergence of Software Diversity in Maven Central
- Can We Trust Tests To Automate Dependency Updates? A Case Study of Java Projects
- Why did developers migrate Android applications from Java to Kotlin?
- Towards Using Package Centrality Trend to Identify Packages in Decline
- API Beauty is in the eye of the Clients: 2.2 Million Maven Dependencies reveal the Spectrum of Client-API Usages
- Empirical Analysis of Vulnerabilities Life Cycle in Golang Ecosystem
- Automatic Library Migration Using Large Language Models: First Results
- On the Threat of npm Vulnerable Dependencies in Node.js Applications
- Vulnerable Open Source Dependencies: Counting Those That Matter
- Characterizing Python Library Migrations
- Migrating Code At Scale With LLMs At Google
- MELT: Mining Effective Lightweight Transformations from Pull Requests
- BUMP: A Benchmark of Reproducible Breaking Dependency Updates
- Pinning Is Futile: You Need More Than Local Dependency Versioning to Defend against Supply Chain Attacks
- An Empirical Study of Usages, Updates and Risks of Third-Party Libraries in Java Projects
- An Empirical Study of Package Management Issues via Stack Overflow
- It's a Complete Haystack: Understanding Dependency Management Needs in Computer-Aided Design
- An Exploration of npm Package Co-Usage Examples from Stack Overflow: A Case Study
- What makes a good Node.js package? Investigating Users, Contributors, and Runnability
- The Dynamics of Software Composition Analysis
- Coding Practices and Recommendations of Spring Security for Enterprise Applications
- From Chaos to Consistency: The Role of CSAF in Streamlining Security Advisories
- Analysis of Library Dependency Networks of Package Managers Used in iOS Development
- Characterization and Automatic Update of Deprecated Machine-Learning API Usages
- Risks of ignoring uncertainty propagation in AI-augmented security pipelines
- Interactive, Effort-Aware Library Version Harmonization
- A Comprehensive Study on the Impact of Vulnerable Dependencies on Open-Source Software
- Opportunities and Security Risks of Technical Leverage: A Replication Study on the NPM Ecosystem
- On The Relation Between Outdated Docker Containers, Severity Vulnerabilities and Bugs
- Which Is Better For Reducing Outdated and Vulnerable Dependencies: Pinning or Floating?
- SōjiTantei: Function-Call Reachability Detection of Vulnerable Code for npm Packages
- Migrating Client Code without Change Examples
- Same File, Different Changes: The Potential of Meta-Maintenance on GitHub
- Extracting Insights from the Topology of the JavaScript Package Ecosystem
- DepOwl: Detecting Dependency Bugs to Prevent Compatibility Failures
- Hero: On the Chaos When PATH Meets Modules
- How Does API Migration Impact Software Quality and Comprehension? An Empirical Study