Differential Fuzzing of Bitcoin implementations and libraries.
It currently supports Bitcoin Core
, btcd
, rust-bitcoin
and rust-miniscript
.
Note this project is a WIP and might be not stable.
First clone the repo and open it using:
git clone --recursive https://github.com/brunoerg/bitcoinfuzz && cd bitcoinfuzz
Next update the submodules:
git submodule update
Now, you can build the project by running:
make
It is also possible to target a specific commit or tag of the dependencies during compilation:
make BTCD=v0.24.0 RUST_BITCOIN=aedb097
Once the compilation is complete bitcoinfuzz can be executed by:
FUZZ=target_name ./bitcoinfuzz
- sipa/miniscript: sipa/miniscript#140
- rust-miniscript: rust-bitcoin/rust-miniscript#633
- rust-bitcoin: rust-bitcoin/rust-bitcoin#2681
- btcd: btcsuite/btcd#2195 (API mismatch with Bitcoin Core)
- Bitcoin Core: #34
- rust-miniscript: rust-bitcoin/rust-miniscript#696 (not found but reproductive)
- rust-miniscript: #39
- rust-bitcoin: rust-bitcoin/rust-bitcoin#2891
- rust-bitcoin: rust-bitcoin/rust-bitcoin#2879
- btcd: btcsuite/btcd#2199
- rust-bitcoin: #57
- rust-bitcoin: CVE-2024-44073