ruzzy

Solid

Ruzzy is a coverage-guided Ruby fuzzer by Trail of Bits. Use for fuzzing pure Ruby code and Ruby C extensions.

Testing & QA 5,673 stars 496 forks Updated today CC-BY-SA-4.0

Install

View on GitHub

Quality Score: 93/100

Stars 20%
100
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Ruzzy Ruzzy is a coverage-guided fuzzer for Ruby built on libFuzzer. It enables fuzzing both pure Ruby code and Ruby C extensions with sanitizer support for detecting memory corruption and undefined behavior. ## When to Use Ruzzy is currently the only production-ready coverage-guided fuzzer for Ruby. **Choose Ruzzy when:** - Fuzzing Ruby applications or libraries - Testing Ruby C extensions for memory safety issues - You need coverage-guided fuzzing for Ruby code - Working with Ruby gems that have native extensions ## Quick Start Set up environment: ```bash export ASAN_OPTIONS="allocator_may_return_null=1:detect_leaks=0:use_sigaltstack=0" ``` Test with the included toy example: ```bash LD_PRELOAD=$(ruby -e 'require "ruzzy"; print Ruzzy::ASAN_PATH') \ ruby -e 'require "ruzzy"; Ruzzy.dummy' ``` This should quickly find a crash demonstrating that Ruzzy is working correctly. ## Installation ### Platform Support Ruzzy supports Linux x86-64 and AArch64/ARM64. For macOS or Windows, use the [Dockerfile](https://github.com/trailofbits/ruzzy/blob/main/Dockerfile) or [development environment](https://github.com/trailofbits/ruzzy#developing). ### Prerequisites - Linux x86-64 or AArch64/ARM64 - Recent version of clang (tested back to 14.0.0, latest release recommended) - Ruby with gem installed ### Installation Command Install Ruzzy with clang compiler flags: ```bash MAKE="make --environment-overrides V=1" \ CC="/path/to/clang" \ CXX="/path/to/clang++" \ LDSHARED="/p...

Details

Author
trailofbits
Repository
trailofbits/skills
Created
4 months ago
Last Updated
today
Language
Python
License
CC-BY-SA-4.0

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category