黑洞

简析 SushiSwap 智能合约漏洞:合约所有者不该拥有无限权利

文 / 管理员 来源 / 链闻 阅读 / 77 8月前

原文标题:《SushiSwap 智能合约漏洞事件分析》
撰文:CertiK

近期《哈利波特与魔法石》3D 版本回归热映,不知道大家有没有注意到那个传说从未发生过盗窃事件的由妖精监管的魔法世界银行——古灵阁。

也许你心想,要是有这样一个保管财富的机构在现实世界中就好了。

然而(剧透预警),在《哈利波特与死亡圣器》当中,从来没有被入侵过的古灵阁世界被盗了——主角们通过了在银行内部工作的妖精,打破了古灵阁从未被盗的记录。

一个优质的金融系统,不仅需要对外坚不可摧,同时对内也要保证不会因项目方自己的意愿,从而有窃取客户财产的可能。

SushiSwap 漏洞事件简介

北京时间 8 月 28 日,CertiK 安全研究团队发 SushiSwap 项目智能合约中存在多个安全漏洞。该漏洞可能被智能合约拥有者利用,允许拥有者进行包括将智能合约账户内的代币在没有授权的情况下取空等操作在内的任意操作。同时该项目智能合约还存在严重的重入攻击漏洞,会导致潜在攻击者的恶意代码被执行多次。

技术解析

简析 SushiSwap 智能合约漏洞:合约所有者不该拥有无限权利MasterChief.sol:131,图片来源 https://github.com/sushiswap/sushiswap/blob/master/contracts/MasterChef.sol

在 SushiSwap 项目 MasterChief.sol 智能合约的 131 行中,智能合约的拥有者可以有权限来设定上图中 migrator 变量的值,该值的设定可以决定由哪一个 migrator 合约的代码来进行后面的操作。

简析 SushiSwap 智能合约漏洞:合约所有者不该拥有无限权利MasterChief.sol:136,图片来源 https://github.com/sushiswap/sushiswap/blob/master/contracts/MasterChef.sol

当 migrator 的值被确定之后(如上图中 142 行代码显示),migrator.migrate(lpToken) 也就可以被随之确定。由 migrate 的方法是通过 IMigratorChef 的接口来进行调用的,因此在调用的时候,migrate 的方法中的逻辑代码会根据 migrator 值的不同而变化。

简而言之,如果智能合约拥有者将 migrator 的值指向一个包含恶意 migrate 方法代码的智能合约,那么该拥有者可以进行任何其想进行的恶意操作,甚至可能取空账户内所有的代币。

同时,在上图 142 行中 migrator.migrate(lpToken) 这一行代码执行结束后,智能合约拥有者也可以利用重入攻击漏洞,再次重新执行从 136 行开始的 migrate 方法或者其他智能合约方法,进行恶意操作。

该漏洞的启示(划重点)

  • 智能合约拥有者不应该拥有无限的权利,必须通过社区监管及治理 (governance) 来限制智能合约拥有者并确保其不会利用自身优势进行恶意操作。

  • 智能合约代码需要经过严格的安全验证和检查之后,才能够被允许公布。

当前 SushiSwap 项目创建者表示,已将该项目迁移到时间锁定(Timelock)合约,即任意 SushiSwap 项目智能合约拥有者的操作会有 48 小时的延迟锁定。

在此 CertiK 技术团队建议大家在智能合约公布前,尽量寻找专业团队做好审计工作,以免项目出现漏洞造成损失。


声明:币贝bibei.pro部分文章及图片来自互联网转载,如侵犯了您的版权请谅解并告之,我们将会第一时间处理!

评论

共0条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~


Powered By bibei.pro © 2019-2020 币贝 版权所有 | 法律顾问:广东圣和胜律师事务所-陈俊兵律师 | 备案号:粤ICP备20035688号-1

友情链接: Odaily星球日报 火币 OKEX 财路网 链得得 币小白 博链财经 链嗅网 搜搜币SOSOB 链商店 一灯社区 创造者日报 量化狗 每日区块链 蜜蜂财经 麦田财经 洞悉财经 币牛资讯 币海网 奇迹摩尔 链百财经 IT 帮 链司令 比特能 玩客中国 上海挖易 糖果空投网 比特帝国 虚拟币啦 派传时报 奔跑财经 毛球科技 C 财经 盛币网 千里眼链讯 比特巴 第1时间新闻网 比特币论坛 区块链开发 3点财经 链团财经