88mph上线仅48小时就遭到了攻击
去中心化交易所Uniswap的初始流动性挖矿正式在今日结束,如社群预料,大规模资金迁徙迁徙至其他地方;对此,Uniswap官方也开启了另外一个UNI流动性挖矿的投票。会通过吗?迁徙的资金漂到哪些地方呢?
11月18日,PeckShield 监控到 DeFi 固定利率借贷协议 88mph 存在代码漏洞,一名攻击者利用该漏洞铸造了价值 10 万美元 MPH 代币。
据悉,88mph 于11 月 16 日上线主网,上线仅 48 小时就遭到了攻击。在 88mph 协议中,用户可通过存入加密资产赚取固定利息,并获得其原生代币 MPH,也可通过购买浮动利率的债券来获取 MPH 代币。
PeckShield 通过追踪和分析发现,首先,攻击者调用 DInterest::deposit() 函数将稳定币储存在资金池中,此时,存款者会收到一个新的 depositID,它相当于非同质化通证(NFT),同时 MPHMinter 合约会开始铸造 MPH 代币;
随后,调用 fundAll() 函数购买浮动利率的债券,在此步骤中,用户可获得 MPH 代币和一个 fundingID (非同质化通证 );
接下来,攻击者将步骤 1 和步骤 2 所获得的 depositID 及 fundingID 传入 earlywithdraw() 函数提取在这两步中所存入的资产。也就是说,攻击者将步骤 1 中原本要锁仓 1 年的加密资产被提前取出,此时攻击者不会获得任何利息,因此步骤 2 中提供的资金也原路退回,并且 MPHMinter 会销毁在步骤 1 中铸造的所有 MPH 代币。值得注意的是,在第 2 步中所铸的 MPH 代币并没有被销毁。攻击者利用这点,以 0 成本获得了步骤 2 所铸造的价值 10 万美元的 MPH 代币。
通过重复操作这三个步骤,攻击者铸造了价值 10万 美元的 MPH 代币,并将其存入 Uniswap V2: MPH 4 池中。
事实上,MPHMinter 合约还有一个漏洞,而开发者利用此漏洞侥幸逃过一劫,使得此次攻击暂未造成任何经济损失。
首先,开发者调用 takeBackDepositorReward 将所获 MPH 代币从 Uniswap V2: MPH 4 转移到 govTreasury(相当于 mph 的资金库),该函数没有设置门槛,任何人都可调用此函数将 MPH 代币转移到 govTreasury 中。
由于攻击者将获得的 MPH 代币存入了 Uniswap V2: MPH 4 池子当中,而 88mph 项目方自己掏空了该池子,然后做了快照,因此暂未造成任何经济损失。
This post has been rewarded by #nutbox. Nutbox is the DApp Incubator of Steem , and you can mine PNUT token by staking to us via https://nutbox.io .Contact us at https://discord.gg/zPkMuGY
本帖中 , @hnt 作为受益人获得奖励 : 1.309 $ + 0.0 STEEM + 7.799 SP = 15.781 STEEM = 2.588 $ , 因此 @hnt 保留 5%(0.789 STEEM) 作为费用 , 并且支付本帖作者 14.992 STEEM . 谢谢使用 @hnt 的流动性服务 !
详细说明 ...