gosentry:集成LibAFL的Go工具链模糊测试分支
Go原生模糊测试存在局限性:难以处理路径约束、缺乏基于语法的模糊测试,且无法检测整数溢出、goroutine泄露、数据竞争和执行超时等多类漏洞。为弥补这些不足,作者开发了gosentry,一个替换原生模糊测试引擎为LibAFL的Go工具链分支。gosentry保留了标准的testing.F工作流程,现有模糊测试用例无需修改即可运行。它增加了对复合类型的结构感知模糊测试、通过Nautilus实现的基于语法的模糊测试,以及额外的漏洞检测器(如通过go-panikint检测整数溢出、使用Go竞态检测器检测数据竞争、通过goleak检测goroutine泄露,以及超时检测)。gosentry还简化了覆盖率报告生成。该工具已在Optimism和Revm等项目中发现了真实漏洞,包括拒绝服务和状态根不匹配问题。gosentry已在GitHub上开源,旨在使Go模糊测试能力接近Rust、C和C++生态系统中的先进工具。
关键事实
- gosentry用LibAFL替换Go原生模糊测试引擎,同时保留testing.F API
- 为结构体、切片、数组和指针增加结构感知模糊测试
- 通过Nautilus支持基于语法的结构化输入模糊测试
- 检测整数溢出、数据竞争、goroutine泄露和超时
- 在Optimism和Revm中发现拒绝服务和状态根不匹配等真实漏洞
KeyAudit 数据视角
📊 KeyAudit 数据库:Optimism 历史泄露记录 0 条