A coverage-guided fuzzer for Python and Python extensions, developed by Google. It integrates with libFuzzer and supports fuzzing Python code and native extensions. Version 3.0.0; released active, follow-on of stable API.
pip install atherisVerified import paths — ran on the pinned version, not inferred.
Basic fuzzer with FuzzedDataProvider.
Replace any usage of atheris.Mutate with FuzzedDataProvider methods (e.g., ConsumeInt, ConsumeString, etc.).
Instantiate as FuzzedDataProvider(data) and use its methods.
On Linux, ensure clang and libfuzzer-dev are installed. For Windows, use WSL.
Pass a corpus directory to Setup: atheris.Setup(sys.argv, TestOneInput, corpus_prefix='corpus/')
Define TestOneInput(data) with a single parameter.
Install with pip install atheris. On Linux, install clang and libfuzzer-dev. On macOS, it works. On Windows, use WSL.
Upgrade atheris: pip install --upgrade atheris, and use from atheris import FuzzedDataProvider.
Change function signature to TestOneInput(data). Use FuzzedDataProvider to extract size if needed.
Build/install atheris with the correct sanitizer flags. For pip, ensure clang is installed and libfuzzer-dev is present.
No dependency data recorded yet.