Istio has a series of fuzzers that run continuously through OSS-fuzz.
To run the fuzzers using Dockerfile.fuzz
, follow these steps:
git clone https://github.com/istio/istio
cd istio
mv tests/fuzz/Dockerfile.fuzz ./
sudo docker build -t istio-fuzz -f Dockerfile.fuzz .
Next, get a shell in the container:
sudo docker run -it istio-fuzz
At this point, you can navigate to tests/fuzz
and build any of the fuzzers:
cd $PATH_TO_FUZZER go-fuzz-build -libfuzzer -func=FUZZ_NAME && \ clang -fsanitize=fuzzer PACKAGE_NAME.a -o fuzzer
If you encounter any errors when linking with PACKAGE_NAME.a
, simply ls
after running go-fuzz-build...
, and you will see the archive to link with.
If everything goes well until this point, you can run the fuzzer:
./fuzzer