atheris

Fuzz Python code and C extensions to uncover memory-safety defects using libFuzzer-based coverage-guided testing with sanitizers.

6.5k|561|Updated Jan 14, 2026
One-click install
npx skills add https://github.com/trailofbits/skills --skill atheris-trailofbits
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: atheris
Source: https://github.com/trailofbits/skills/tree/main/plugins/testing-handbook-skills/skills/atheris
Command: npx skills add https://github.com/trailofbits/skills --skill atheris-trailofbits

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Atheris fuzzing helps developers automatically discover memory-safety and logic defects in Python code and Python C extensions by exploring input spaces with coverage-guided fuzzing.

Core Features & Use Cases

  • Coverage-guided fuzzing based on libFuzzer for Python and native extensions
  • Supports harnesses for pure Python and Python C extensions, with Docker-ready environments
  • Integration with sanitizers (ASan/UBSan) and guidance for CI workflows

Quick Start

Create a minimal harness, instrument your target with Atheris, and run fuzzing to start discovering defects.

Frequently Asked Questions about atheris

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I fuzz Python C extensions to find memory-safety defects?

Fuzz Python C extensions to uncover memory-safety defects by writing a test harness, instrumenting your target code with Atheris, and executing coverage-guided fuzzing campaigns based on libFuzzer.

What is coverage-guided fuzzing for Python code?

Coverage-guided fuzzing for Python code automatically explores input spaces to discover memory-safety and logic defects. Atheris uses libFuzzer instrumentation to maximize code coverage and uncover hidden bugs during security testing.

Can I run fuzzing with sanitizers in my CI pipelines for native extensions?

Yes, you can run fuzzing in CI pipelines for native extensions. Atheris integrates with sanitizer-enabled builds like ASan and UBSan, providing Docker-ready environments to automatically execute fuzz campaigns.

Do I need a Docker environment to set up fuzzing for Python libraries?

Docker setup is optional for setting up fuzzing for Python libraries. You can create a minimal harness and instrument your pure Python or native extension code directly, but Docker-ready environments are supported for CI workflows.

What is the difference between fuzzing pure Python and native C extensions?

Fuzzing pure Python targets logic defects, while fuzzing native C extensions targets memory-safety defects. Atheris supports harnesses for both, requiring sanitizer-enabled builds to effectively uncover underlying vulnerabilities in C extensions.

Why does my Python fuzzing campaign fail to find defects in native extensions?

Your Python fuzzing campaign may fail to find defects in native extensions if you lack sanitizer-enabled builds. Integrating ASan or UBSan with Atheris instrumentation is required to expose underlying memory-safety vulnerabilities.