Atheris is a coverage-guided fuzzer for CPython that treats Python as a first-class fuzzing target, enabling rapid discovery of crashes and logic errors in pure-Python code and native extensions. It hooks into Python’s interpreter to collect fine-grained coverage and uses that signal to evolve inputs, pushing programs into previously unexplored code paths. Because many Python libraries are thin wrappers over C/C++ code, Atheris is equally adept at surfacing memory safety issues in extension modules compiled with sanitizers. The tool integrates smoothly with Python’s packaging and unit-test ecosystems, so you can wrap existing tests as fuzz targets and keep results understandable. It supports structured input strategies and custom mutators, which is especially helpful for text and data formats common in Python workloads. In practice, Atheris compresses weeks of edge-case brainstorming into hours of automated exploration with actionable, minimized reproductions.
Features
- Coverage-guided fuzzing for Python and native extensions
- Tight integration with CPython for high-resolution coverage
- Works with sanitizers to find native memory errors via Python entry points
- Easy harnessing of existing unit tests as fuzz targets
- Input minimization and reproducible crashing test cases
- Custom mutators and structured inputs for complex formats