OSS-Fuzz - continuous fuzzing for open source software.
Go to file
Raphael Salas 2b5577e25e
[xs] Disable stack-use-after-return detection (#8923)
The `detect_stack_use_after_return=1` option in `ASAN_OPTIONS` set by
the runner seemed to cause the fuzzer to not pick up any coverage.

I'm not quite sure why this happens. Any guidance would be appreciated.
The fuzzer seems stuck with this flag set:

`python infra/helper.py run_fuzzer --corpus-dir ../corpus_xst_json/ xs
xst_jsonparse -- seed=1`

```
INFO: seed corpus: files: 1728 min: 1b max: 131336b total: 336638b rss: 92Mb
#64	pulse  cov: 322 ft: 323 corp: 1/1b exec/s: 32 rss: 92Mb
#128	pulse  cov: 322 ft: 323 corp: 1/1b exec/s: 25 rss: 92Mb
#256	pulse  cov: 322 ft: 324 corp: 2/8b exec/s: 23 rss: 93Mb
#512	pulse  cov: 322 ft: 324 corp: 2/8b exec/s: 22 rss: 93Mb
#1024	pulse  cov: 322 ft: 324 corp: 2/8b exec/s: 22 rss: 93Mb
```

However disabling it seems to make progress, with the same command (note
same seed and corpus). After rebuilding image with
`detect_stack_use_after_return` disabled:

`python infra/helper.py run_fuzzer --corpus-dir ../corpus_xst_json/ xs
xst_jsonparse -- seed=1`

```
INFO: seed corpus: files: 1728 min: 1b max: 131336b total: 336638b rss: 92Mb
#64	pulse  cov: 485 ft: 500 corp: 29/55b exec/s: 32 rss: 93Mb
#128	pulse  cov: 574 ft: 673 corp: 70/239b exec/s: 25 rss: 93Mb
#256	pulse  cov: 749 ft: 1060 corp: 132/707b exec/s: 23 rss: 93Mb
#512	pulse  cov: 834 ft: 1560 corp: 214/1767b exec/s: 22 rss: 93Mb
#1024	pulse  cov: 953 ft: 2344 corp: 353/5213b exec/s: 22 rss: 93Mb
```

Setting `detect_stack_use_after_return=0` fixed it -- local runs picked
up coverage with seed corpus, and even a couple of crashes. Until I work
around this it would be preferable to gain some coverage, even if we
don't detect `stack-use-after-return` for now.
2022-11-14 15:20:02 -05:00
.allstar Opt out of allstar binary artifacts check (#7816) 2022-06-08 09:37:08 -04:00
.github Centipede integration (#8046) 2022-09-06 02:34:58 +00:00
docs Improve fuzz introspector documentation. (#8859) 2022-10-25 15:58:11 -04:00
infra fuzztest integration (#8784) 2022-11-14 13:34:29 +11:00
projects [xs] Disable stack-use-after-return detection (#8923) 2022-11-14 15:20:02 -05:00
.dockerignore [ClusterFuzzLite] Support GCB and gsutil/gcs as filestore. (#6629) 2021-10-27 10:00:04 -04:00
.gitattributes Add .gitattributes to specify LF as .sh line terminator (#7648) 2022-05-02 10:12:06 -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
CONTRIBUTING.md Delete unnecessary files and fix format in some MD pages (#4115) 2020-07-16 15:27:29 -07:00
LICENSE
README.md README: update stats (#7944) 2022-07-05 15:07:52 +10: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 July 2022, OSS-Fuzz has found over 40,500 bugs in 650 open source projects.

Blog posts