ruzzy

Fuzz Ruby applications and C extensions with libFuzzer instrumentation.

Updated Nov 23, 2025
One-click install
npx skills add https://github.com/manuelbrandner85/Weltenbibliothekapp --skill ruzzy-manuelbrandner85
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ruzzy
Source: https://github.com/manuelbrandner85/Weltenbibliothekapp/tree/main/.agents/skills/ruzzy
Command: npx skills add https://github.com/manuelbrandner85/Weltenbibliothekapp --skill ruzzy-manuelbrandner85

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Ruzzy addresses the lack of native, coverage-guided fuzzing tools for the Ruby ecosystem, enabling developers to identify memory corruption, undefined behavior, and crashes in both pure Ruby code and Ruby C extensions.

Core Features & Use Cases

  • Coverage-Guided Fuzzing: Utilizes libFuzzer to intelligently explore code paths, significantly increasing the likelihood of finding edge-case bugs.
  • Sanitizer Support: Integrates AddressSanitizer (ASan) and UndefinedBehaviorSanitizer (UBSan) to detect memory leaks, buffer overflows, and other critical security vulnerabilities.
  • Use Case: Use Ruzzy to stress-test a Ruby C extension that handles complex binary data, ensuring it remains stable and secure against malformed inputs that could otherwise lead to heap-use-after-free errors.

Quick Start

Run the ruzzy fuzzer against your target harness script by setting the appropriate LD_PRELOAD environment variable and executing the ruby command with your harness file.

Frequently Asked Questions about ruzzy

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

FAQPage Schema
How do I perform coverage-guided fuzzing on Ruby C extensions to detect memory corruption?

Coverage-guided fuzzing for Ruby C extensions uses libFuzzer instrumentation to intelligently explore code paths and detect memory corruption. It targets security-critical code paths in native extensions by feeding malformed inputs to uncover crashes and undefined behavior.

Can I use AddressSanitizer and UndefinedBehaviorSanitizer to fuzz Ruby gems?

Yes, AddressSanitizer (ASan) and UndefinedBehaviorSanitizer (UBSan) are integrated to detect memory leaks, buffer overflows, and undefined behavior during Ruby gem fuzzing. The sanitizers run alongside libFuzzer to identify critical security vulnerabilities in both pure Ruby code and C extensions.

What compiler toolchain do I need to run libFuzzer fuzzing campaigns on Ruby applications?

Running libFuzzer fuzzing campaigns on Ruby applications requires a Clang compiler toolchain and specific sanitizer environment configurations. You must set the appropriate LD_PRELOAD environment variable and execute the ruby command with your target harness script to start the fuzzer.

When should I use coverage-guided fuzzing for Ruby native extensions?

Coverage-guided fuzzing is needed when you must stress-test Ruby native extensions that handle complex binary data. It ensures extensions remain stable and secure against malformed inputs that could otherwise lead to critical errors like heap-use-after-free vulnerabilities.

What is the best way to find undefined behavior and crashes in Ruby C extensions?

The best way to find undefined behavior and crashes in Ruby C extensions is coverage-guided fuzzing with libFuzzer. It intelligently explores code paths to significantly increase the likelihood of finding edge-case bugs that trigger memory corruption and security vulnerabilities.