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.