Published March 24, 2025 | Version v3
Software Open

Attacker Control and Bug Prioritization

  • 1. ROR icon Commissariat à l'Énergie Atomique et aux Énergies Alternatives

Description

As bug-finding methods improve, bug-fixing capabilities are exceeded, resulting in an accumulation of potential vulnerabilities. There is thus a need for efficient and precise bug prioritization based on exploitability. In this work, we explore the notion of control of an attacker over a vulnerability's parameters, which is an often overlooked factor of exploitability. We show that taint as well as straightforward qualitative and quantitative notions of control are not enough to effectively differentiate vulnerabilities. Instead, we propose to focus analysis on feasible value sets, which we call domains of control, in order to better take into account threat models and expert insight. Our new Shrink and Split algorithm efficiently extracts domains of control from path constraints obtained with symbolic execution and renders them in an easily processed, human-readable form. This in turn allows to automatically compute more complex control metrics, such as weighted Quantitative Control, which factors in the varying threat levels of different values. Experiments show that our method is both efficient and precise. In particular, it is the only one able to distinguish between vulnerabilities such as cve-2019-14192 and cve-2022-30552, while revealing a mistake in the human evaluation of cve-2022-30790. The high degree of automation of our tool also brings us closer to a fully-automated evaluation pipeline.

Notes

This artifact contains the necessary material to reproduce all experimental results from the paper, including:
* the source code of our tool Colorstreams 
* our benchmarks + scripts to run experiments and analyze results

In addition, we provide tutorials and documentation for Colorstreams.

Given the amount of dependencies, we only provide compilation through Nix. This should also help to future-proof the building process. We provide a docker image for those who do not wish to install Nix on their machine.

We recommend using a linux machine with at least a 16-cores CPU.

Files

readme.md

Files (6.8 GB)

Name Size Download all
md5:3ce2508251dea5bf165753a1d1d4a11a
1.4 MB Download
md5:5222caa40fb88efce3f8663abeaa6660
6.8 GB Download
md5:7c3dcbfeaa427bb8c3499bc9e0092304
10.7 kB Preview Download

Additional details

Software

Programming language
OCaml