Publication Type
Journal Article
Version
acceptedVersion
Publication Date
4-2021
Abstract
Context: Software developers often use open-source libraries in their project to improve development speed. However, such libraries may contain security vulnerabilities, and this has resulted in several high-profile incidents in re- cent years. As usage of open-source libraries grows, understanding of these dependency vulnerabilities becomes increasingly important. Objective: In this work, we analyze vulnerabilities in open-source libraries used by 450 software projects written in Java, Python, and Ruby. Our goal is to examine types, distribution, severity, and persistence of the vulnerabili- ties, along with relationships between their prevalence and project as well as commit attributes. Method: Our data is obtained by scanning versions of the sample projects after each commit made between November 1, 2017 and October 31, 2018 using an industrial software composition analysis tool, which provides information such as library names and versions, dependency types (direct or transitive), and known vulnerabilities. Results: Among other findings, we found that project activity level, popu- larity, and developer experience do not translate into better or worse han- dling of dependency vulnerabilities. We also found “Denial of Service” and “Information Disclosure” types of vulnerabilities being common across the languages studied. Further, we found that most dependency vulnerabilities persist throughout the observation period (mean of 78.4%, 97.7%, and 66.4% for publicly-known vulnerabilities in our Java, Python, and Ruby datasets respectively), and the resolved ones take 3-5 months to fix. Conclusion: Our results highlight the importance of managing the number of dependencies and performing timely updates, and indicate some areas that can be prioritized to improve security in wide range of projects, such as prevention and mitigation of Denial-of-Service attacks.
Keywords
Empirical Study, Security, Software Composition Analysis
Discipline
Software Engineering
Research Areas
Software and Cyber-Physical Systems
Publication
Empirical Software Engineering
Volume
26
Issue
4
First Page
1
Last Page
37
ISSN
1382-3256
Identifier
10.1007/s10664-021-09959-3
Publisher
Springer
Embargo Period
8-3-2021
Citation
PRANA, Gede Artha Azriadi; SHARMA, Abhishek; SHAR, Lwin Khin; FOO, Darius; SANTOSA, Andrew E.; SHARMA, Asankhaya; and LO, David.
Out of sight, out of mind? How vulnerable dependencies affect open-source projects. (2021). Empirical Software Engineering. 26, (4), 1-37.
Available at: https://ink.library.smu.edu.sg/sis_research/6048
Copyright Owner and License
Authors
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-No Derivative Works 4.0 International License.
Additional URL
https://doi.org/10.1007/s10664-021-09959-3