事件起因
2021 年 6 月 23 日,基于币安智能链(BSC)的稳定币交易平台 Nerve Finance 发推表示,收益聚合器 Eleven Finance 中与 Nerve 相关的机枪池或遭闪电贷攻击,知道创宇区块链安全实验室 第一时间展开分析。
事件经过
交易链接:
https://bscscan.com/tx/0x6450d8f4db09972853e948bee44f2cb54b9df786dace774106cd28820e906789
1.攻击者首先通过闪电贷借到 USDT 后将其中一部分兑换为 NRV 代币,然后再用 NRV 代币 与 USDT 在 pancakeswap 上添加流动性获得 LP 代币。
2.攻击者拿到 lp 代币 后调用会收获挖矿合约 MasterMind (0x2EBe8CDbCB5fB8564bC45999DAb8DA264E31f24E)的 NRV 代币 并将其从机枪池中兑换为 11NRV 代币,这样攻击者就有 LP 代币(BUSDT 与 NRV)和 11NRV 代币。
3.随后攻击者调用 ElevenNeverSellVault (0x27DD6E51BF715cFc0e2fe96Af26fC9DED89e4BE8)合约添加流动性,获得了 11nrv BUSD 代币。
4. 问题就出在添加流动性获得代币后,ElevenNeverSellValpult 合约 有一个紧急销毁函数,它可以提取合约内的代币余额,这样用户再调用该函数就从挖矿合约 (MasterMind)下提取了 LP 余额。
5. 随后攻击者又取消流动性,又拿回了流动性池子中对应的 LP 代币。
6. 最后攻击者将两次拿到一共 82W 的 LP 代币 到 pancakeswap 中取消流动性,获得了 NRV 代币 和 BUSDT,再将 NRV 兑换为 BUSDT 后偿还闪电贷并完成套利。
事件总结
本次闪电贷套利的本质还是合约函数的功能没有完善,没有充分考虑在紧急提取时销毁用户所属的奖励 LP 代币,目前官方表示 Nerve 资金和其他合约都还是安全的,建议必要时寻找审计机构进行代码的安全审计。