One-click install
npx skills add https://github.com/erenisiklar/Pusula --skill atheris-erenisiklar
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: atheris
Source: https://github.com/erenisiklar/Pusula/tree/main/.claude/skills/atheris
Command: npx skills add https://github.com/erenisiklar/Pusula --skill atheris-erenisiklar

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Atheris solves the challenge of automatically discovering crashes and memory-safety bugs in Python code and Python C extensions by using coverage-guided fuzzing based on libFuzzer.

Core Features & Use Cases

  • Coverage-guided fuzzing for Python code and C extensions using libFuzzer.
  • Harnessing with @atheris.instrument_func and instrument_imports to maximize coverage.
  • Docker-ready setup and cross-platform support for Linux and macOS.
  • Built-in support for fuzzing both pure Python code and native extensions, with AddressSanitizer integration.
  • Use cases include fuzzing input parsing, data validation, and API surface fuzzing.

Quick Start

Create a fuzzing harness with a test_one_input function and start fuzzing by calling Setup and Fuzz.

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

Fuzz Python C extensions by running coverage-guided fuzzing with Atheris, which leverages libFuzzer to automatically uncover crashes and memory-safety issues in native code across Linux and macOS.

What is coverage-guided fuzzing for Python apps and how does it work?

Coverage-guided fuzzing for Python apps uses libFuzzer via Atheris to track code execution paths. By instrumenting functions with specific decorators, it mutates inputs to maximize code coverage and discover hidden crashes.

Can I run Atheris fuzzing in a Docker container on macOS?

Yes, you can run Atheris fuzzing in Docker containers on macOS. The tool supports cross-platform environments including containerized setups, requiring Python 3.7+ and a suitable toolchain like clang.

How do I set up a fuzzing harness for pure Python code?

Set up a fuzzing harness for pure Python code by creating a test_one_input function, then calling Setup and Fuzz. You can use instrument_imports to maximize coverage during the fuzzing process.

Does Atheris support AddressSanitizer integration for fuzzing native extensions?

Yes, Atheris supports AddressSanitizer integration for fuzzing native extensions. This combination helps detect memory-safety issues and crashes in Python C extensions during coverage-guided fuzzing.

What are the limitations of fuzzing Python code with libFuzzer?

Fuzzing Python code with libFuzzer requires Python 3.7+ and a suitable toolchain like clang. It targets pure Python code and native extensions but requires proper instrumentation setup to achieve effective coverage.