CertiK:SushiSwap仿盘YUNO与KIMCHI智能合约漏洞或存安全隐患
摘要: CertiK发现Sushiswap仿盘的两个项目YUNo Finance (YUNO)与KIMCHI.finance (KIMCHI),其智能合约均存在漏洞。
北京时间8月31日和9月1日,CertiK安全研究团队发现Sushiswap仿盘的两个项目YUNo Finance (YUNO)与KIMCHI.finance (KIMCHI),其智能合约均存在漏洞。如果利用该漏洞,智能合约拥有者可以无限制地增发项目对应的代币数目,导致项目金融进度通胀并最终崩溃。
无限增发漏洞
以Yuno项目中智能合约为例,CertiK安全研究团队对于该无限增发漏洞进行了详细分析,技术细节如下:
在Yuno项目中的MasterChef.sol智能合约第1354行中,dev方法可以允许当前拥有devaddr身份的智能合约调用者,将devaddr身份转移给另外一个地址。
截图出自:https://etherscan.io/
下图中可以看到在智能合约1282行的mint方法是由修饰器onlyOwner进行限制,修饰器onlyOwner决定了只能是智能合约拥有者来执行这个合约。
以上三截图均出自:https://etherscan.io/
拥有devaddr身份的调用者,当其身份恰好同时为owner身份的时候,可以通过调用MasterChef.sol智能合约1282行的mint方法,来无限制的增发代币。1282行的mint方法会继续调用1130行的mint方法,并继续由1130行mint方法调用1044行的_mint方法,并最终完成代币增发的操作。
Kimichi项目智能合约中存在的无限增发漏洞与以上漏洞基本相同,因此在这里不进行重复叙述。
如果owner和devaddr的地址如果相同,那么在外部没有对智能合约拥有者限制的情况下,智能合约拥有者拥有权利增发任意数量的代币,这将会将投资者置于风险之中。那么Yuno和Kimichi这两个项目中的devaddr和owner是否为同一人呢?是否有其他外部制约机制可以限制这两个项目的智能合约拥有者呢?
下图为Yuno项目MasterChef.sol智能合约中拥有devaddr和owner身份的地址(截止北京时间9月1日晚11点)。
截图出自:https://etherscan.io/
下图为Kimichi项目中KimchiChef.sol智能合约中拥有devaddr和owner身份的地址(截止北京时间9月1日晚11点)。
截图出自:https://etherscan.io/
从上两图中可以看到,Yuno项目中拥有devaddr和owner身份的地址为同一个,因此其智能合约拥有者有权利进行无限制的代币增发。而Kimichi项目中拥有devaddr和owner身份不同,但由于devaddr的身份可以进行转移,因此也存在一定的风险。
目前措施
为了确保无限增发漏洞不会被触发,对于Yuno和Kimichi两个项目的智能合约拥有者必须由外部进行限制。当前已经实施的限制条件与Sushiswap项目一致,即对任何由智能合约拥有者进行的智能合约操作,均有48小时的延迟。任何来自智能合约拥有者的操作都会被所有投资者观察到,并有48小时进行应对操作。
CertiK安全团队建议
-
当前DeFi以及相关Farming项目异常火爆,由于区块链项目对于项目代码公开性有要求,因此上线新项目门槛极低。如果盲目借鉴其他项目,任意漏洞都可能被引入到项目中。因此在项目上线之前,应该对项目进行严格的安全审计。
-
从投资者角度,当前Farming项目动辄百分之几千的回报率,极易促使投资者在没有对项目本身有足够了解的情况下进行盲目投资。例如SushiSwap,Yuno以及Kimchi三个项目均没有经过严谨的安全验证就快速上线。投资者可能会被巨大的利益回报迷惑,将宝贵资金投入到有极大风险的智能合约中。
作者:CertiK;来自链得得内容开放平台“得得号”,本文仅代表作者观点,不代表链得得官方立场凡“得得号”文章,原创性和内容的真实性由投稿人保证,如果稿件因抄袭、作假等行为导致的法律后果,由投稿人本人负责得得号平台发布文章,如有侵权、违规及其他不当言论内容,请广大读者监督,一经证实,平台会立即下线。如遇文章内容问题,请发送至邮箱:linggeqi@chaindd.com
好文!