dergoegge/fuzzor
GitHub: dergoegge/fuzzor
Fuzzor 是一套持续模糊测试基础设施,主要服务于 Bitcoin Core 等区块链项目的自动化缺陷发现与覆盖率分析。
Stars: 8 | Forks: 6
# Fuzzor
正在开发中的持续 fuzzing 基础设施。构建和维护的主要目的是
持续 fuzz [Bitcoin Core](https://github.com/bitcoin/bitcoin),
但也支持添加和 fuzz 其他项目(参见 `projects/`)。
## 快速开始
```
docker build --tag fuzzor-base:latest --file infra/Dockerfile.base .
cd projects/bitcoin
docker build --tag fuzzor-bitcoin:latest .
docker run -it fuzzor-bitcoin:latest
FUZZ=txgraph ./out/libfuzzer_asan/fuzz
```
## 功能
- 自动化 bug 报告
- 自动化覆盖率报告生成
- 支持主流的 fuzzing 引擎
([`AFL++`](https://github.com/AFLplusplus/AFLplusplus),
[`libFuzzer`](https://llvm.org/docs/LibFuzzer.html),
[`honggfuzz`](https://github.com/google/honggfuzz), [`原生
Golang`](https://go.dev/doc/security/fuzz/))
- Crash 去重
- 使用所有支持的引擎进行 Corpus 最小化
- 实时集成 fuzzing
- 基于覆盖率的调度策略
- 支持实验性 fuzzing 引擎(例如,使用 [SemSan](https://github.com/dergoegge/semsan) 进行 fuzz 驱动的特征测试)
### 计划功能
- 支持更多 fuzzing 引擎(例如
[`Radamsa`](https://gitlab.com/akihe/radamsa),
[`libafl_libfuzzer`](https://github.com/AFLplusplus/LibAFL/tree/main/libafl_libfuzzer),
[`libafl-fuzz`](https://github.com/AFLplusplus/LibAFL/tree/main/fuzzers/forkserver/libafl-fuzz),
...)
- Snapshot fuzzing 支持(例如,使用全系统
[`libafl_qemu`](https://github.com/AFLplusplus/LibAFL/tree/main/libafl_qemu)
和/或 [`nyx`](https://nyx-fuzz.com/))
- Concolic fuzzing 引擎支持
- 自动化 bug 分类
- 自动化 pull request fuzzing
## Fuzzor 发现的 bug
- core-lightning: fuzz-connectd-handshake-act2: Assertion 'write_count == 1 && "too many calls to io_write()"' ([详情]())
- core-lightning: fuzz-cryptomsg: Assertion 'cryptomsg_decrypt_body(buf, &cs_in, buf) == NULL' ([详情]())
- core-lightning: fuzz-bolt12-bech32-decode: index 128 out of bounds for type 'const int8_t[128]' ([详情](https://github.com/ElementsProject/lightning/pull/7322))
- lnd: FuzzProbability: normalization factor is zero ([详情](https://github.com/lightningnetwork/lnd/issues/9085))
- lnd: FuzzReplyChannelRange: failed to encode message to buffer ([详情](https://github.com/lightningnetwork/lnd/pull/9084))
- bitcoin: wallet_bdb_parser: BDB builtin encryption is not supported ([详情](https://github.com/bitcoin/bitcoin/issues/30166))
- bitcoin: rpc: runtime error: reference binding to null pointer of type 'const value_type' ([详情](https://github.com/bitcoin/bitcoin/pull/29855))
- bitcoin: script: Assertion '!extract_destination_ret' failed ([详情](https://github.com/bitcoin/bitcoin/issues/30615))
- bitcoin: scriptpubkeyman: heap-buffer-overflow miniscript.cpp in CScript BuildScript ([详情](https://github.com/bitcoin/bitcoin/issues/30864))
- bitcoin: p2p_headers_presync: Assertion 'total_work < chainman.MinimumChainWork()' failed ([详情](https://github.com/bitcoin/bitcoin/pull/31213))
- bitcoin: connman: terminate called after throwing an instance of 'std::bad_alloc' ([详情]())
- bitcoin #30243: mocked_descriptor_parse: Assertion '(leaf_version & ~TAPROOT_LEAF_MASK) == 0' failed ([详情](https://github.com/bitcoin/bitcoin/pull/30243#issuecomment-2169240015))
- bitcoin #31244: various descriptor parsing crashes ([详情](https://github.com/bitcoin/bitcoin/pull/31244#issuecomment-2527475671))
- bitcoin #28584: null-ptr deref ([详情](https://github.com/bitcoin/bitcoin/pull/28584#issuecomment-2527495228))
- bitcoin #28584: use of uninitialized memory ([详情](https://github.com/bitcoin/bitcoin/pull/28584#issuecomment-2531288821))
标签:Docker, UML, 安全防御评估, 开源框架, 持续集成, 请求拦截, 通知系统