Cyber Risks · Trail of Bits Blog

Proto Fuzz: A Protobuf Fuzzer

Summary: Trail of Bits released ProtoFuzz, a Python3 library that takes a protobuf definition and generates streams of valid protobuf-encoded messages filled with malicious values drawn from the fuzzdb database, aiming at the code behind protobuf decoding rather than the mature deserialization code itself. The library offers linear and permutation fuzzing strategies, supports field dependencies so values like lengths, CRC checksums, and magic values are derived from other fields instead of mutated, and includes a ring-buffer logging class for fuzzing campaigns.

What's compelling: The tool exists because fuzzing a protobuf service directly rarely reaches the code behind decoding, so the parsing layer most teams assume is covered is often the part never tested; ProtoFuzz's minimal dependencies make it fit for CI, where that gap can be closed continuously.

Read the original at Trail of Bits Blog ↗