Grim Finance 攻击策略
Last updated
Was this helpful?
Last updated
Was this helpful?
攻击交易链接:https://ftmscan.com/tx/0x19315e5b150d0a83e797203bb9c957ec1fa8a6f404f4f761d970cb29a74a5dd6
核心原因:
depositFor 代码未作限制导致被重入攻击,用户可以存入任何代币合约。
如上代码所示
攻击者通过闪电贷借出 WFTM 与 BTC 代币,组流动池获得lp代币。
grim finance的GrimBoostVault 需要质押lp代币获得挖矿收益
depositFor 函数并未检查用户指定转入的 token 的合法性,攻击者通过调用 depositFor 函数时传入了由攻击代币合约地址。
通过攻击代币合约地址,对depositFor 重入攻击,在最后一笔交易时传入合法的lp代币。
由于GrimBoostVault 合约重入5次,因此 GrimBoostVault 合约给攻击者铸造了5倍的抵押LP凭证。
通过超额的抵押LP凭证把钱都换回WFTM与BTC,并还清闪电贷的钱,剩余转入攻击者自己的账号
解决方案:
1.depositFor 函数加重入锁
2.限制depositFor 可存入的代币