blob: 429fbdab5fe466f308d99211ca0e15a4e891be7c [file] [log] [blame] [view]
kplybon8216f272019-08-08 10:12:25 -04001# OSS-Fuzz: Continuous Fuzzing for Open Source Software
Mike Aizatsky8f24df72016-10-25 14:31:45 -07002
R. Elliott Childred70f7932020-07-16 18:27:29 -04003[Fuzz testing] is a well-known technique for uncovering programming errors in
4software. Many of these detectable errors, like [buffer overflow], can have
5serious security implications. Google has found [thousands] of security
6vulnerabilities and stability bugs by deploying [guided in-process fuzzing of
7Chrome components], and we now want to share that service with the open source
8community.
Mike Aizatsky8f24df72016-10-25 14:31:45 -07009
R. Elliott Childred70f7932020-07-16 18:27:29 -040010[Fuzz testing]: https://en.wikipedia.org/wiki/Fuzz_testing
11[buffer overflow]: https://en.wikipedia.org/wiki/Buffer_overflow
Max Moroz40a183b2019-08-09 12:35:14 -070012[thousands]: https://bugs.chromium.org/p/chromium/issues/list?q=label%3AStability-LibFuzzer%2CStability-AFL%20-status%3ADuplicate%2CWontFix&can=1
R. Elliott Childred70f7932020-07-16 18:27:29 -040013[guided in-process fuzzing of Chrome components]: https://security.googleblog.com/2016/08/guided-in-process-fuzzing-of-chrome.html
Max Moroz40a183b2019-08-09 12:35:14 -070014
R. Elliott Childred70f7932020-07-16 18:27:29 -040015In cooperation with the [Core Infrastructure Initiative], OSS-Fuzz aims to make
16common open source software more secure and stable by combining modern fuzzing
17techniques with scalable, distributed execution.
Kostya Serebryanyb48c72b2016-11-18 16:47:25 -080018
R. Elliott Childred70f7932020-07-16 18:27:29 -040019[Core Infrastructure Initiative]: https://www.coreinfrastructure.org/
Mike Aizatsky8f24df72016-10-25 14:31:45 -070020
R. Elliott Childred70f7932020-07-16 18:27:29 -040021We support the [libFuzzer], [AFL], and [Honggfuzz] fuzzing engines in
22combination with [Sanitizers], as well as [ClusterFuzz], a distributed fuzzer
23execution environment and reporting tool.
24
25[libFuzzer]: https://llvm.org/docs/LibFuzzer.html
26[AFL]: https://lcamtuf.coredump.cx/afl/
27[Honggfuzz]: https://github.com/google/honggfuzz
28[Sanitizers]: https://github.com/google/sanitizers
29[ClusterFuzz]: https://github.com/google/clusterfuzz
30
31Currently, OSS-Fuzz supports C/C++, Rust, and Go code. Other languages supported
32by [LLVM] may work too. OSS-Fuzz supports fuzzing x86_64 and i386 builds.
33
34[LLVM]: https://llvm.org
Kostya Serebryany229ffae2016-12-02 20:41:47 -080035
kplybon8216f272019-08-08 10:12:25 -040036## Overview
37![OSS-Fuzz process diagram](docs/images/process.png)
38
kplybon615ff3a2019-08-08 10:36:35 -040039## Documentation
R. Elliott Childred70f7932020-07-16 18:27:29 -040040Read our [detailed documentation] to learn how to use OSS-Fuzz.
41
42[detailed documentation]: https://google.github.io/oss-fuzz
Max Morozaa9c2572018-12-11 13:56:48 -080043
Oliver Chang9e0c1432016-10-25 20:44:34 -070044## Trophies
R. Elliott Childred70f7932020-07-16 18:27:29 -040045As of June 2020, OSS-Fuzz has found over [20,000] bugs in [300] open source
46projects.
Mike Aizatsky26819642016-10-06 14:02:52 -070047
Abhishek Arya9abf69c2020-06-12 16:03:07 -070048[20,000]: https://bugs.chromium.org/p/oss-fuzz/issues/list?q=-status%3AWontFix%2CDuplicate%20-component%3AInfra&can=1
49[300]: https://github.com/google/oss-fuzz/tree/master/projects
Mike Aizatsky26819642016-10-06 14:02:52 -070050
Abhishek Aryacf4af862019-08-07 07:37:16 -070051## Blog posts
R. Elliott Childred70f7932020-07-16 18:27:29 -040052* 2016-12-01 - [Announcing OSS-Fuzz: Continuous fuzzing for open source software]
53* 2017-05-08 - [OSS-Fuzz: Five months later, and rewarding projects]
54* 2018-11-06 - [A New Chapter for OSS-Fuzz]
Abhishek Aryacf4af862019-08-07 07:37:16 -070055
R. Elliott Childred70f7932020-07-16 18:27:29 -040056[Announcing OSS-Fuzz: Continuous fuzzing for open source software]: https://opensource.googleblog.com/2016/12/announcing-oss-fuzz-continuous-fuzzing.html
57[OSS-Fuzz: Five months later, and rewarding projects]: https://opensource.googleblog.com/2017/05/oss-fuzz-five-months-later-and.html
58[A New Chapter for OSS-Fuzz]: https://security.googleblog.com/2018/11/a-new-chapter-for-oss-fuzz.html