慢雾:DFX Finance 遭攻击,因 Curve 合约闪电贷函数未做重入保护

2022年11月11日 18:08
收藏

ChainCatcher 消息,据慢雾安全团队情报,ETH 链上的 DFX Finance 项目遭到攻击,攻击者获利约 231,138 美元。慢雾安全团队以简讯形式分享如下:

1. 攻击者首先调用了名为 Curve 的合约中的 viewDeposit 函数来查看合约中的存款情况,之后根据返回的存款情况来构造合适的闪电贷需要借出的钱

2. 紧接着继续 Curve 合约的 flash 函数进行闪电贷,因为该函数未做重入锁保护,导致攻击者利用闪电贷中的 flashCallback 函数回调了合约的 deposit 函数进行存款

3. 存款函数外部调用了 ProportionalLiquidity 合约的 proportionalDeposit 函数,在该函数中会将第二步中借来的资金转移回 Curve 合约里,并且为攻击合约进行存款的记账,并且为攻击合约铸造存款凭证

4. 由于利用重入了存款函数来将资金转移回 Curve 合约中,使得成功通过了闪电贷还款的余额检查

5. 最后调用 withdraw 函数进行取款,取款时会根据第三步存款时对攻击合约记账燃烧掉存款凭证,并以此成功取出约 2,283,092,402 枚的 XIDR 代币和 99,866 枚 USDC 代币获利

此次攻击的主要原因在于 Curve 合约闪电贷函数并未做重入保护,导致攻击重入了存款函数进行转账代币来通过闪电贷还款的余额判断,由于存款时有记账所以攻击者可以成功提款获利。

链捕手ChainCatcher提醒,请广大读者理性看待区块链,切实提高风险意识,警惕各类虚拟代币发行与炒作, 站内所有内容仅系市场信息或相关方观点,不构成任何形式投资建议。如发现站内内容含敏感信息,可点击 “举报”,我们会及时处理。
ChainCatcher 与创新者共建Web3世界