OSS-Fuzz - continuous fuzzing for open source software.
Go to file
Alex Crichton 7210a5c4e9
wasmtime: Shrink size of compiled fuzzers (#7354)
It looks like Wasmtime's fuzzers are failing to run due to them being to
large, so this is a quick band-aid fix to reduce the size of the
binaries. It looks like Rust's `cargo fuzz` tool by default links in
dead code for code coverage purposes (ish, I'm not 100% sure on this),
so the size of fuzzers are reduced by stripping dead code. In a local
build this reduces the size of Wasmtime's output directory from 6.8G to
3.4G and should buy us some time to implement deeper fixes (such as
having one shared library that all of the fuzzers call into instead of
duplicating statically-linked Wasmtime amongst all the fuzzer binaries).
2022-03-02 20:47:14 +00:00
.github Use libClusterFuzz for CIFuzz fuzzing and pruning. (#6375) 2021-09-13 12:16:13 +10:00
docs Bump nokogiri from 1.12.5 to 1.13.3 in /docs (#7334) 2022-02-27 11:39:44 -05:00
infra Update README.md (#7352) 2022-03-02 10:39:34 -05:00
projects wasmtime: Shrink size of compiled fuzzers (#7354) 2022-03-02 20:47:14 +00:00
.dockerignore [ClusterFuzzLite] Support GCB and gsutil/gcs as filestore. (#6629) 2021-10-27 10:00:04 -04:00
.gitignore Improve CIFuzz tests (#4868) 2020-12-18 10:37:56 -08:00
.pylintrc Replace terms that are uninclusive. (#5045) 2021-01-25 08:41:34 -08:00
.style.yapf [infra] Add presubmit script (#3196) 2020-01-10 10:19:42 -08:00
CONTRIBUTING.md Delete unnecessary files and fix format in some MD pages (#4115) 2020-07-16 15:27:29 -07:00
LICENSE Create LICENSE 2016-10-03 12:24:25 -07:00
README.md [ClusterFuzzLite] Support local runs (#6987) 2022-01-19 17:24:47 -05:00

README.md

OSS-Fuzz: Continuous Fuzzing for Open Source Software

Fuzz testing is a well-known technique for uncovering programming errors in software. Many of these detectable errors, like buffer overflow, can have serious security implications. Google has found thousands of security vulnerabilities and stability bugs by deploying guided in-process fuzzing of Chrome components, and we now want to share that service with the open source community.

In cooperation with the Core Infrastructure Initiative and the OpenSSF, OSS-Fuzz aims to make common open source software more secure and stable by combining modern fuzzing techniques with scalable, distributed execution. Projects that do not qualify for OSS-Fuzz (e.g. closed source) can run their own instances of ClusterFuzz or ClusterFuzzLite.

We support the libFuzzer, AFL++, and Honggfuzz fuzzing engines in combination with Sanitizers, as well as ClusterFuzz, a distributed fuzzer execution environment and reporting tool.

Currently, OSS-Fuzz supports C/C++, Rust, Go, Python and Java/JVM code. Other languages supported by LLVM may work too. OSS-Fuzz supports fuzzing x86_64 and i386 builds.

Overview

OSS-Fuzz process diagram

Documentation

Read our detailed documentation to learn how to use OSS-Fuzz.

Trophies

As of January 2022, OSS-Fuzz has found over 36,000 bugs in 550 open source projects.

Blog posts