On the Effect of Transitivity and Granularity on Vulnerability Propagation in the Maven Ecosystem

01/19/2023
by   Amir M. Mir, et al.
0

Reusing software libraries is a pillar of modern software engineering. In 2022, the average Java application depends on 40 third-party libraries. Relying on such libraries exposes a project to potential vulnerabilities and may put an application and its users at risk. Unfortunately, research on software ecosystems has shown that the number of projects that are affected by such vulnerabilities is rising. Previous investigations usually reason about dependencies on the dependency level, but we believe that this highly inflates the actual number of affected projects. In this work, we study the effect of transitivity and granularity on vulnerability propagation in the Maven ecosystem. In our research methodology, we gather a large dataset of 3M recent Maven packages. We obtain the full transitive set of dependencies for this dataset, construct whole-program call graphs, and perform reachability analysis. This approach allows us to identify Maven packages that are actually affected by using vulnerable dependencies. Our empirical results show that: (1) about 1/3 of packages in our dataset are identified as vulnerable if and only if all the transitive dependencies are considered. (2) less than 1 have a reachable call path to vulnerable code in their dependencies, which is far lower than that of a naive dependency-based analysis. (3) limiting the depth of the resolved dependency tree might be a useful technique to reduce computation time for expensive fine-grained (vulnerability) analysis. We discuss the implications of our work and provide actionable insights for researchers and practitioners.

READ FULL TEXT

page 1

page 7

research
05/17/2023

Vulnerability Propagation in Package Managers Used in iOS Development

Although using third-party libraries is common practice when writing sof...
research
08/27/2021

A Comparative Study of Vulnerability Reporting by Software Composition Analysis Tools

Background: Modern software uses many third-party libraries and framewor...
research
09/18/2021

SōjiTantei: Function-Call Reachability Detection of Vulnerable Code for npm Packages

It has become common practice for software projects to adopt third-party...
research
08/29/2023

A Closer Look at the Security Risks in the Rust Ecosystem

Rust is an emerging programming language designed for the development of...
research
09/18/2020

On the Threat of npm Vulnerable Dependencies in Node.js Applications

Software vulnerabilities have a large negative impact on the software sy...
research
12/08/2020

Fine-Grained Network Analysis for Modern Software Ecosystems

Modern software development is increasingly dependent on components, lib...
research
10/21/2022

Approaches to Identify Vulnerabilities to Misinformation: A Research Agenda

Given the prevalence of online misinformation and our scarce cognitive c...

Please sign up or login with your details

Forgot password? Click here to reset