Clone this repo:

Branches

  1. 46a82a4 fuzzilli: Update integer `*Element` types to use bounded int types by Tigran Bantikyan · 18 hours ago main
  2. e9a7cad fuzzilli: Add support for Mojo data pipe handles to generated profiles by Tigran Bantikyan · 4 days ago
  3. 1560ed0 fuzzilli: Update `MojoCommonProfile.swift` for generated profiles by Tigran Bantikyan · 6 days ago
  4. e5bcfab fuzzing: Add Fuzzilli profile for fuzzing SpeculationHost web interface by Tigran Bantikyan · 6 days ago
  5. fae89b2 fuzzilli: Add no-op object literal generator for union fuzzing by Tigran Bantikyan · 6 days ago

Fuzzing in Chromium

go/chrome-fuzzing

Just got a bug report from ClusterFuzz?: If you want to reproduce a ClusterFuzz crash locally, see How to Reproduce a Crash from ClusterFuzz.

Fuzzing is an automated software testing technique that provides invalid, unexpected, or random data as inputs to a program to find bugs.

Why fuzz? Fuzzing finds thousands of security and stability issues before they reach users (see go/fuzzing-success). For more information about the benefits of fuzzing, see go/why-fuzz.

Where to fuzz? Fuzz code that parses, decodes, or manipulates input from untrusted sources, such as the web.

Getting started

In Chromium, you can create and submit fuzz targets that run continuously at scale on ClusterFuzz. Prefer FuzzTest for all new fuzz targets. Use libFuzzer only to maintain existing targets.

FuzzTest (recommended)

FuzzTest integrates with the gtest framework and tests code that accepts structured, typed inputs, such as int, std::string, std::vector, or custom classes.

libFuzzer (deprecated)

libFuzzer tests APIs that consume raw byte buffers, such as image decoders and JSON or XML parsers.

Advanced topics

Getting help

If you have questions or encounter issues,

  • email chrome-fuzzing-core@google.com or
  • file a bug using the Chrome > Security > Fuzzing component.

View dashboard and stats