用途:这是一份 Web3 漏洞赏金案例研究,展示如何把完整的 10 类漏洞方法论应用到单个收益聚合器目标上,作为模板使用。
主要能力:给出目标画像(收益聚合器、最高赏金 $50K、TVL 低、核心合约 Vault.sol 与 RewardsDistributor.sol、程序较新、此前两家审计机构发现均被 Risk Accepted)、评分卡(8/10 → HUNT)、架构与资金流、10 类漏洞逐项判定。
关键发现:一是 DISTRIBUTOR_ROLE 已定义但从未在构造函数或初始化中授予,无人持有该角色,claimFor() 永远回滚,奖励代币被永久锁定(Critical/High);二是 _performHarvest() 粉尘收割导致收益分配永久 DoS(Medium)。其余类别判定为 CLEAN、NOT APPLICABLE 或已知风险接受。
使用方式:提供 Foundry PoC 模板,通过 getRoleMemberCount 验证角色成员数为 0,并断言 claimFor() 回滚。运行命令:forge test --match-test testDistributorRoleNeverGranted -vvvv --fork-url $MAINNET_RPC_URL。另附报告模板与 7 问验证清单。
适用场景:面向使用 OpenZeppelin AccessControl 的合约、独立部署的 Distributor/RewardsDistributor 类合约、多步初始化合约,检查每个 *_ROLE 是否有对应 grantRole() 调用。
限制:案例中目标已匿名化,地址需替换为实际部署地址;部分结论依赖链上验证;不提交已被团队 Risk Accepted 的发现、缺少 PoC 的重入问题及中心化风险。具体收费、平台规则等资料暂未提供。