panda-re/lava

LAVA: Large-scale Automated Vulnerability Addition

What it solves

LAVA addresses the shortage of ground-truth corpora for evaluating and improving bug-finding tools. It allows developers to create large-scale, synthetic but realistic vulnerability corpora on demand by automatically injecting bugs into software.

How it works

LAVA automatically injects vulnerabilities into target software programs. Each injected bug is paired with a specific input that triggers it, ensuring that the bug is reproducible and known. This creates a set of "ground truth" data where the bug and its triggering input are known, which can then be used to test if a bug-finding tool can actually locate the same vulnerability.

Who it’s for

This tool is designed for developers of bug-finding tools and security researchers who need high-quality, labeled datasets of vulnerable software to rigorously evaluate their analysis tools.

Highlights

  • Automated Bug Injection: Automatically creates vulnerabilities in existing software.
  • Ground Truth Generation: Every bug comes with a corresponding triggering input.
  • Realistic Synthetic Bugs: Bugs are embedded deep within programs to simulate real-world scenarios.
  • Extensible: Supports adding new target projects via configuration files in the target_configs directory.

Related

  • Project
  • Project
  • Project
  • Project
  • Project