Solv Protocol 黑客攻击:$2.5M 双重铸造漏洞
发布: (2026年3月9日 GMT+8 13:32)
3 分钟阅读
原文: Dev.to
Source: Dev.to
Overview
Solv Protocol 的漏洞导致约 250 万美元 的损失,攻击者利用 BitcoinReserveOffering 合约中的逻辑缺陷。该漏洞使攻击者在一次铸造流程中两次铸造 BRO 代币,导致代币大幅通胀。
Exploit Mechanics
- 缺陷源于 NFT 转移过程与
onERC721Received回调之间的交互。 - 通过在回调内部触发代币铸造,然后在执行返回主
mint()函数时再次收到铸造请求,攻击者创建了无背书的 BRO 代币。 - 攻击者最初持有 135 BRO 代币,这些代币被储备合约销毁。作为回报,协议根据当前汇率发行少量 GOEFS 代币。
- 利用这些 GOEFS 代币,攻击者发起一次铸造交易,携带 GOEFS 代币和特定 NFT。
- 当 NFT 被转移时,合约调用
onERC721Received,该回调内部执行_mint函数并向攻击者发放 BRO 代币。 - 回调结束后,控制权返回原始的
mint()函数,函数再次为同一操作铸造代币,导致 双重铸造。
Attack Execution
- 攻击者在单笔交易中重复触发该铸造流程 22 次。
- 由于整个漏洞在一次交易中完成,汇率保持不变,使攻击者每次迭代都能将铸造的代币数量翻倍。
- 这一过程将攻击者的持有量从 135 BRO 增至约 5.67 亿 BRO 代币。
Financial Impact
- 攻击者通过 BRO–SolvBTC 交易所交换了约 1.65 亿 BRO 代币,并通过 Uniswap V3 将收益路由。
- 这些交换最终将资产转换为 1,211 ETH。
- 剩余代币仍留在攻击者的钱包中。
- 提取的 ETH 被转移到多个攻击者控制的钱包,最终存入 RailGun,这是一种用于隐藏交易轨迹的隐私协议。
Conclusions
- 该漏洞是由于铸造流程中的逻辑缺陷且缺乏适当的验证导致的。
- 对外部调用、回调以及状态更新处理不当会引入细微的漏洞,攻击者可以大规模利用这些漏洞。
- 智能合约流程中的小逻辑错误可能导致灾难性的代币通胀,凸显了严格安全审查和全面测试的必要性。
想要查看完整的技术细节、攻击流程图和链上分析?
Solv Protocol Exploit (Explained in Depth)