What problem does it solve?
This Skill helps you detect crashes and memory corruption in Ruby code by running coverage-guided fuzzing with sanitizer instrumentation instead of relying on hand-written tests that miss edge cases.
Core Features & Use Cases
- Coverage-guided Ruby fuzzing: Uses Ruzzy (libFuzzer-based) to systematically explore inputs for both pure Ruby code and Ruby C extensions.
- Sanitizer support for bug detection: Leverages AddressSanitizer (ASan) and UndefinedBehaviorSanitizer (UBSan) to surface memory safety issues like heap overflows and undefined behavior.
- Harness-driven execution: Lets you define deterministic harnesses (and, for pure Ruby, an additional tracer step) so crashes can be reproduced with minimized inputs.
Use Case Example: You want to harden a Ruby gem with a native extension; fuzz the extension’s parser by feeding arbitrary binary inputs until sanitizer reports a heap use-after-free.
Quick Start
Run the included toy harness with: set ASAN_OPTIONS to suitable values, then execute Ruzzy via LD_PRELOAD and run the toy entrypoint to confirm it can find a crash and write artifacts.