然后进攻者开始将oETH兑换出来。
如下图所示:
0xb837531bf4eb8ebfa3e20948bd14be067c18cbd3
成都链安-安详尝试室第一时间对本次事件举办跟踪阐明,以下是态势感知系统检测到的进攻者合约地点:
8月5日破晓四点,有用户在opyn论坛反馈本身的账户余额无故消失,并有用户发明可疑的生意业务信息,如下图所示:
如下图所示:
3、?安详是一个一连的进程,绝非一次审计就能保平安,与第三方安详公司成立恒久的相助至关重要
3、?进攻者赎回本身抵押的ETH。
如下图所示:
Exercise函数运行_exercise(vault.oTokensIssued, vaultOwner);分支,将30oETH相应比例的USDC发送给挪用者,如下图所示:
进攻者首先挪用了addERC20CollateralOption函数,向合约中发送了9900个USDC,如下图所示:
此次事件进攻者操作了exercise函数的逻辑缺陷。此函数在举办最后转账前并未验证挪用者是否有权限赎回此地点的USDC,只是简朴的验证了地点是否可以赎回。
Opyn项目方再对环境劈头阐明后做出回应暗示:已经转移了资金,并正在寻找问题原因
1、?进攻者挪用合约向合约发送n个USDC增加抵押,并获得合约币oETH
进攻者进攻方法还原:
挪用exercise,结构参数oTokensToExercise为60,vaultsToExerciseFrom为两个地点,个中一个是也满意条件的他人地点。
0xe7870231992ab4b1a01814fa0a599115fe94203f
2、?进攻者挪用合约发送ETH举办抵押,并销毁oETH以赎回本身的USDC
2、?对付合约的该当配置暂停合约生意业务等成果,在产生安详事件时,可以以担保资金安详
停止发稿前,官方发文回应此次事件:遭到黑客进攻,并已对大概蒙受进攻的资产举办转移,但此次裂痕只涉及ETH合约,并不影响其他合约。如下图所示:
以生意业务0x56de6c4bd906ee0c067a332e64966db8b1e866c7965c044163a503de6ee6552a为例,进攻者通过合约0xe7870231992ab4b1a01814fa0a599115fe94203f对合约0x951D51bAeFb72319d9FBE941E1615938d89ABfe2动员进攻,此笔生意业务中共赢利$9907。
此函数中的addERC20Collateral(msg.sender, amtCollateral);认真署理转账USDC;函数中的issueOTokens(amtToCreate, receiver);认真铸币oETH,此笔生意业务铸币30个oETH并发送给了进攻者,如下图所示:
在此完成后,进攻者的vault参数举办了变革。vault.oTokensIssued和vault.collateral别离更新300000000和9900000000为如下图所示:
二、 技能阐明
属于代码层的逻辑裂痕,而且按照官方回覆,此合约是颠末安详审计的。成都链何在此提醒各项目方:
1、?项目上线前该当举办足够有效的安详审计,最好是多方审计
我们可以留意到,在最终转账时,_exercise是将USDC转给了msg.sender,也就是进攻者。
我们转头看exercise中存在者for轮回,,进攻者输入的oTokensToExercise为60,所以合约再验证了第二个地点切合条件的环境下,依旧会将余额转给msg.sender,也就是进攻者。这就使得进攻者可以得到两次USDC,从而得到利润。
在步调二中,进攻者挪用exercise函数,并向其通报了两个地点A(进攻者本身地点)、B(他人未赎回USDC的地点)和两倍本身应得的USDC,措施正常执行,这导致地点B的资金受损。
总结发起
0xb72e60ea1d0c04605f406c158dce9ac6ae6d224c
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。