1
0
Fork 0
firefox/security/nss/fuzz
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00
..
config Adding upstream version 140.0. 2025-06-25 09:37:52 +02:00
options Adding upstream version 140.0. 2025-06-25 09:37:52 +02:00
targets Adding upstream version 140.0. 2025-06-25 09:37:52 +02:00
.clang-format Adding upstream version 140.0. 2025-06-25 09:37:52 +02:00
fuzz.gyp Adding upstream version 140.0. 2025-06-25 09:37:52 +02:00
README.md Adding upstream version 140.0. 2025-06-25 09:37:52 +02:00
warning.txt Adding upstream version 140.0. 2025-06-25 09:37:52 +02:00

Build

The fuzz targets can be build with ./build.sh --fuzz [--disable-tests]. They compile with ASan and UBSan by default, see coreconf/fuzz.sh.

OSS-Fuzz

All fuzz targets run continuously on oss-fuzz, the respective project.yaml can be found at https://github.com/google/oss-fuzz/blob/master/projects/nss/project.yaml. An overview with code coverage is available at https://introspector.oss-fuzz.com/project-profile?project=nss, as well as a link to a more detailed fuzz introspector report.

MozillaSecurity/orion

We regularly run two services, one to collect coverage information ourselves and another one to mirror the public oss-fuzz corpora and populate the private bucket with new testcases. Code coverage reports can be found at https://fuzzmanager.fuzzing.mozilla.org/covmanager/reports/.

Adding a new fuzz target

The fuzz targets are located at fuzz/targets. Some additional things to keep in my mind when adding a new fuzz target:

  • Every fuzz target needs a .options file at fuzz/options, other fuzz tooling depends on it.
  • For CI integration, schedule the corresponding fuzzing runs at automation/taskcluster/graph/src/extend.js.
  • Testcases can be extracted from the existing tests by adding hooks to fuzz/config/frida_corpus/hooks.js and fuzz/config/frida_corpus/cli.py.

Useful Links