atheris

Fuzz Python code and C extensions with libFuzzer and AddressSanitizer.

Updated Feb 24, 2026
One-click install
npx skills add https://github.com/ofelixdev/cc-kit --skill atheris-ofelixdev
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: atheris
Source: https://github.com/ofelixdev/cc-kit/tree/main/template/skills/atheris
Command: npx skills add https://github.com/ofelixdev/cc-kit --skill atheris-ofelixdev

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve?

This Skill provides a robust framework for finding bugs and security vulnerabilities in Python code and its C extensions through coverage-guided fuzzing.

Core Features & Use Cases

  • Fuzzing Pure Python: Apply coverage-guided fuzzing to Python-only codebases.
  • Fuzzing C Extensions: Detect memory corruption and other issues in Python C extensions.
  • Sanitizer Integration: Leverages AddressSanitizer (ASan) for deep memory error detection.
  • Use Case: Automatically discover crashes or memory leaks in a Python library that parses complex data formats by feeding it a wide variety of malformed inputs.

Quick Start

Use the atheris skill to fuzz the provided Python script 'fuzz_target.py'.

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 corruption?

Fuzzing Python C extensions to find memory corruption involves using coverage-guided fuzzing with libFuzzer integrated with AddressSanitizer to detect native memory errors. This framework automates feeding malformed inputs to discover crashes and leaks.

What is coverage-guided fuzzing for pure Python code?

Coverage-guided fuzzing for pure Python code dynamically generates and mutates inputs to explore untested code paths. This technique automatically discovers crashes and vulnerabilities by continuously maximizing code execution coverage.

How do I write a fuzzing harness and manage corpora for Python testing?

Writing a fuzzing harness and managing corpora for Python testing requires defining a target function that processes mutated bytes and maintaining a corpus directory to store effective inputs. This guidance is provided to optimize bug discovery.

Does fuzzing with AddressSanitizer require a Docker environment?

Fuzzing with AddressSanitizer does not strictly require Docker, but setting up the fuzzing environment via Docker is supported to streamline dependency management. This ensures correct sanitizer instrumentation for C extensions.

Why use fuzzing for a Python library that parses complex data formats?

Using fuzzing for a Python library that parses complex data formats automatically discovers crashes by feeding it a wide variety of malformed inputs. This exposes hidden edge cases and security vulnerabilities efficiently.