前言
北京时间12月13日,知道创宇区块链安全实验室关注到针对Definer预言机的攻击事件。
作为第三方区块链安全机构,受Definer、Cherryswap和OEC组成的调查小组邀请参与本次攻击事件的技术调查工作。实验室第一时间启动应急,跟踪本次事件进行分析并出具调查报告。
分析
tx:
https://www.oklink.com/en/oec/tx/0x67134b2687945404b7697873a553a8318117dc56004ddaa02d2a6ac85e502e4a?tab=4
DeFi借贷平台Polytrade与加密支付网关Transak达成合作:金色财经消息,DeFi借贷平台Polytrade与加密支付网关Transak达成合作。Polytrade用户可以使用信用卡/借记卡购买USDC。该集成将允许用户将存款直接存入Polytrade钱包,并进行借贷交易。[2022/4/9 14:14:54]
攻击者信息
攻击tx:0x67134b2687945404b7697873a553a8318117dc56004ddaa02d2a6ac85e502e4a
攻击合约:0x05806559f7f7732f2d3e71bca2eb12eab1938ceb
被攻击池信息
USDT池:0xc1b02e52e9512519edf99671931772e452fb4399
OKB池:0xd63b340F6e9CCcF0c997c83C8d036fa53B113546
BTCK池:0x33a32f0ad4aa704e28c93ed8ffa61d50d51622a7
DeFi 概念板块今日平均涨幅为0.35%:金色财经行情显示,DeFi 概念板块今日平均涨幅为0.35%。47个币种中16个上涨,31个下跌,其中领涨币种为:MLN(+26.47%)、SNX(+21.32%)、KCASH(+17.63%)。领跌币种为:LBA(-5.97%)、IDEX(-5.89%)、DMG(-5.38%)。[2021/7/6 0:29:48]
ETHK池:0x75dcd2536a5f414b8f90bb7f2f3c015a26dc8c79
攻击流程
合约方面调用流程
1、攻击合约0x058065调用CherrySwap的FlashSwap功能进行闪电贷,贷出了CHE/OKB池子中几乎全部的CHE。此时池子仅剩极少量CHE
2、抵押给Definer借款来的1000个CHE,Definer预言机计算价格依赖CherrySwap池中两种代币的余额比例,导致Definer预言机计算1000个CHE价格失准,1000个CHE的价值被认为极大值。
DeFi收益管理平台Formation Fi宣布将于6月22日上线质押服务:据官方消息,DeFi收益管理平台Formation Fi宣布将于6月22日上线质押服务。
Formation Fi是一个使用风险平价作为投资管理策略的跨链自动化DeFi收益管理平台。该平台允许用户跨链部署流动性挖矿策略,如BSC、以太坊和波卡。
此前消息,Formation Fi宣布完成330万美元战略融资,参投方包括Kenetic、Kosmos、Spark Digital Capital、AU21、X21 Digital、Momentum 6、GenBlock、GBV Capital、Shima Capital、Brilliance Ventures以及Bancor、Synthetix、Polygon创始人。还有另外18位投资者也参与了该轮超额认购。[2021/6/21 23:53:26]
数据:BDP锁仓量达66.4亿美元,跃居DeFi协议锁仓量榜首:据欧科云链OKLink数据显示,截至今日17时30分,以太坊上DeFi协议总锁仓量约合580.1亿美元。
其中锁仓量排名前三的协议分别是Big Data Protocol(BDP) 66.4亿美元,WBTC 64.2亿美元以及Maker 62.8亿美元。BDP当前锁仓量超过66亿美元,位居DeFi协议锁仓量第一名。[2021/3/8 18:25:16]
3、攻击者借出USDT池子约462,318个USDT
4、攻击者借出OKB池子约37,172个OKB
5、攻击者借出BTCK池子约3个BTCK
6、攻击者借出ETHK池子约8个ETHK
DeFi基金项目火锅基金正式上线 首期募资超过200万元:据官方消息,DeFi基金投资类项目火锅基金(hotpot.fund)已于3月1日正式上线,第一期基金支持用户使用USDT、USDC和DAI三种稳定币进行投资,当前募资金额已超过200万元。CTO Richard Du在火锅基金联合币小白、兮达 DeFi Lab的AMA直播活动中对项目进行了剖析
火锅基金是一个运行在以太坊上的透明化基金项目,可以为缺乏DeFi投资专业知识的用户,提供一个易用、稳健的DeFi投资入口。[2021/3/1 18:03:48]
7、攻击者通过CherrySwap的CHE/USDT池子利用10,000个USDT换出30,765个CHE
8、归还CherrySwap闪电贷1,575,093个CHE
漏洞细节
根据Definer各合约部署地址(https://docs.definer.org/deployed-contracts/addresses),由于预言机实现过程通过CherrySwap池子的两个Token在池子的余额来判断价格:
预言机实现过程中没有考虑到闪电贷贷出时余额大量减少的情况,导致了Definer项目方预言机计算失准,从而导致了该事件。
以USDT池子为例:
从具体Transaction中我们跟进到SavingAccount合约的逻辑合约0xc1b02e52e9512519edf99671931772e452fb4399#priceFromAddress
在该函数中使用AggregatorInterface(tokenInfo.chainLinkOracle)的预言机来询价
排查获取AggregatorInterface中具体调用地址发现,其映射变量位于TokenRegistry合约:
而TokenRegistry的合约部署地址根据官方的deployed-contracts/addresses可知位于0x0E16Ada9C4Cf95d6722c65504555124A241DdA81
在该地址通过对CHE代币地址0x8179d97eb6488860d816e3ecafe694a4153f216c查询得到对应使用的预言机:
该地址即为存在漏洞的预言机地址:
总结
本次事件是由于Definer在OEC对于预言机的实现存在问题,使用了单一流动池在一个时间点的池内代币余额作为价格源从而导致了事故的发生,而以太坊的实现则使用了ChainLink的预言机不存在该问题。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。