What problem does it solve?
Atheris provides a ready-to-use, coverage-guided fuzzing workflow for Python code and native extensions, helping teams discover crashes, memory-safety issues, and edge-case bugs early in development.
Core Features & Use Cases
- Coverage-guided fuzzing for pure Python code and Python C extensions using libFuzzer and AddressSanitizer.
- Harness guidance and instrumentation with atheris.instrument_func and atheris.instrument_imports for high coverage.
- Docker-based, reproducible environments with a complete clang/toolchain setup for safe fuzzing in CI or local environments.
- Real-world use cases include fuzzing Python libraries, validating C extensions, and testing complex input parsing to prevent crashes or security issues.
Quick Start
Build and run the fuzzing environment using the provided Docker workflow:
- Build: docker build -t atheris .
- Run: docker run -it atheris
- Verify: python -c "import atheris; print(atheris.version)"
Then create a small harness, instrument it with atheris, and start fuzzing your target function.