VMF contains a collection of different tools which attempts to build a unified experience for a given end user attempting to fuzz software. As such, there are numeous third party efforts being utilized by VMF. These are primarily included as source (a particular version verified to work with VMF), but a few come from the OS.
This document intends to track the included third party tools, and their associated licenses in order to ensure all license conditions are being met, and no incompatibly licensed tools are being included.
| Project | Version | License |
|---|---|---|
| curl | 8.9.1 | Custom |
| googletest | 1.17.0 | BSD Clause 3 New or Revised |
| json11 | v1.0.0 | MIT |
| Klee ktest | 1.0 | University of Illinois/NCSA Open Source License |
| plog | 1.1.10 | MIT |
| restclient-cpp | 0.5.3 | MIT |
| wingetopt | 1.00 | ISD |
| uthash | 2.3.0 | BSD Revised |
| yaml-cpp | yaml-cpp-0.8.0 | MIT |
A classic example of this is the ln Linux tool for making links to files, or the stdio.h C header for enabling printing to STDOUT and reading from STDIN.
Enumeration of these installations is for record keeping only:
| Package | Installation type |
|---|---|
| afl++ | apt |
| afl++-clang | apt |
| afl++-doc | apt |
| ca-certificates | apt |
| libcurl-dev | apt |
| gdb | apt |
| gnupg | apt |
| libcurl-4-openssl-dev | apt |
| lsb-core | apt |
| lsb-release | apt |
| graphviz | apt |
| clang-12 | apt |
| doxygen | apt |
| llvm-12 | apt |
| python3-dev | apt |
| python3-pip | apt |
| python3-setuptools | apt |
| build-essential | apt |
| cmake | apt |
| lief | pip |
| zip | apt |
These packages need to be installed in order to build and run VMF.
klee must be installed and in your $PATH order to use the KleeInitialization
module, which generates an initial corpus/seeds using symbolic execution. The KLEE
team maintains instructions to build KLEE from source (see section 'Building from source (with LLVM xx)');
however, we have found that specific versions of requirements such as LLVM may be mutually
exclusive or difficult to manage in parallel with versions that are commonly available. As
a result, we suggest running KLEE in Docker with VMF
instead. See the docker/README.md for information for building VMF
with Klee in Docker.
The distributed fuzzing Campaign Data Management Server (CDMS) depends on many different packages and libraries. Similar to VMF dependencies, there are two kinds of inclusion currently being performed:
- Inclusion as a Java Archive (.jar) file
- Inclusion at a source level by copying portions of a third-party package into CDMS
Build artifacts for these dependencies are included as Java Archive (.jar) files
| Project | Version | License |
|---|---|---|
| Gson | gson-parent-2.10.1 | Apache 2.0 |
| ibatis | 2.5.0 | Apache 2.0 |
| sqlite-jdbc | 3.43.0.0 | Apache 2.0 |
| Project | Version | License |
|---|---|---|
| JQuery | 3.7.1 | MIT |
| JQuery UI | 1.8.1 | Dual licensed under the MIT and GPL licenses |
| JQuery UI | 1.13.2 | MIT |
| TableCSVExport | head | MIT |
| Tablesorter | 2.31.1 | Dual licensed under MIT or GPL licenses |
| W3 CSS | 4.15 | Public domain |
Note: For items where no license link is provided, the license statement is only included in file header comments and not as a separate file in the repository.