查看原文
其他

400万美元丢了,你以为这是愚人节故事?

CertiK CertiK 2022-06-07
北京时间2022年3月31日上午10时左右,Fuse上的Ola Finance被恶意利用,导致约400万美元资产遭受损失。

漏洞交易

● 其中一笔交易:
https://explorer.fuse.io/tx/0xe800f55fe6c81baba1151245ebc43692735d4019107f1f96eeb9f05648c79938/token-transfers
● 所有相关交易均可在此查到:
https://explorer.fuse.io/address/0x371D7C9e4464576D45f11b27Cf88578983D63d75/transactions
 

相关合约及地址

● 攻击者地址:  0x371d7c9e4464576d45f11b27cf88578983d63d75
● 攻击合约 :
○ 0x632942c9BeF1a1127353E1b99e817651e2390CFF
● Ola Finance相关合约:
○ oWETH: 0x139Eb08579eec664d461f0B754c1F8B569044611
○ oWBTC: 0xd3f5070d524780CD204AF5A64d6B7D722F686729
 

攻击流程

我们以0xe800f55这一笔交易举例:
1. 黑客部署了一个攻击合约0x632942c。
2. 黑客利用部署的攻击合约发起攻击,首先从0x97F4F45闪电贷到515 WETH。
3. 攻击合约将借到的515 WETH存到Erc20Delegator (oWETH)合约,并铸造了25,528.022 oWETH用于后续借贷。
4. 由于攻击合约拥有了上述步骤中的25,528.022 oWETH,即可从另一个Erc20Delegator (oWBTC)合约借得20 WBTC。
5. 因为WBTC代币合约是一种ERC677合约,在代币转移过程中会发起外部调用。
因为这笔转移发生在借款记录更新之前,而该借贷记录由多个Erc20Delegator合约共享,攻击合约利用外部调用在借款记录更新之前进入另一个Erc20Delegator合约,再次借用代币。
虽然Erc20Delegator合约的借款函数有防止重入的限制,但它只能防止外部调用重入自身合约,而它不能防止外部调用进入其它Erc20Delegator合约并通过共享的借款记录再次借款。
自此,黑客完成了利用一笔抵押进行的多次借款。
6. 完成恶意借款之后,黑客于0x97F4F45偿还闪电贷借款。
 

漏洞为何会被利用

该项目基于Compound合约,Compound合约和ERC677/ERC777的代币之间的不兼容,使该黑客事件成为可能。
这些代币的内置回调函数被利用,允许重入以耗尽借贷池
 
写在最后
该次事件可通过安全审计发现相关风险。

若该合约进行审计,我们将会注意到该Compound合约和有外部调用的代币的不兼容型,并提示可能存在的重入问题。

技术团队应及时关注已发生的安全事件,并且检查自己的项目中是否存在类似问题。
400万美元说没就没并不是愚人节恶作剧,但项目方如果不重视安全问题极有可能让黑客有机可乘,成为下一个“整蛊对象”。

迄今为止,CertiK已获得了2500家企业客户的认可,保护了超过3110亿美元的数字资产免受损失。

欢迎点击CertiK公众号底部对话框,留言免费获取咨询及报价!

往期长文回顾

红杉资本布局区块链安全赛道,以近10亿美元估值领投CertiK 8000万美元B2轮

Tiger布局区块链安全赛道,领投CertiK 2400万美元B+轮

区块链安全赛道最大单笔融资,CertiK B轮融资3700万美元

BabyMusk价格跳水式下跌99%,Rug Pull防范迫在眉睫!

丧心病狂再“炸桥”?又一跨链桥项目遭袭,Meter.io损失420万美元

破五不能破财!Solana跨链桥虫洞事件分析

快到碗里来 | 微软等巨头企业领导者加入CertiK,共筑重量级管理团队

全球邀请函 | CertiK写给挣扎在理想和现实中的你的一封信

一键查询安全排行榜——DeFi的安全洞察数据库

CertiK Skynet天网扫描系统:绕道土狗,竟如此简单?

想知道项目的审计情况,看看项目的审计报告?攻略和入口在这!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存