Fuzzamoto

Fuzzamoto provides a framework and fuzzing engine for coverage-guided fuzzing of Bitcoin full node implementations.

  • Implementation Agnostic: The same tests can target different protocol implementations and compare their behavior (e.g. Bitcoin Core, btcd, libbitcoin, ...)
  • Holistic: Tests are performed on the full system, not just isolated components, enabling the discovery of bugs that arise from the composition of different components
  • Coverage-Guided: Fuzzing is guided by coverage feedback

It is not meant to be a replacement for traditional fuzzing of isolated components, but rather a complement to it.

Trophies

ProjectBugScenario
Bitcoin Coremigratewallet RPC assertion failurewallet-migration
Bitcoin Coremigratewallet RPC assertion failurewallet-migration
Bitcoin Coreassertion failure in CheckBlockIndexrpc-generic
Bitcoin Core PR#30277Remotely reachable assertion failure in Miniketch::Deserializeir