北京时间8月28日,certik安全研究团队发现sushiswap项目智能合约中存在多个安全漏洞,该漏洞可能被智能合约拥有者利用,允许拥有者进行包括将智能合约账户内的代币在没有授权的情况下取空等操作在内的任意操作。同时该项目智能合约还存在严重的重入攻击漏洞,会导致潜在攻击者的恶意代码被执行多次。
技术步骤:
鹏博士布局区块链masterchief.sol:131
聊城新闻/sushiswap/sushiswap/blob/master/contracts/masterchef.sol
在sushiswap项目智能合约的masterchief.sol智能合约的131行中,智能合约的拥有者可以有权限来设定上图中migrator变量的值,该值的设定可以决定由哪一个migrator合约的代码来进行后面的操作。
masterchief.sol:136
/sushiswap/sushiswap/blob/master/contracts/masterchef.sol
当migrator的值被确定之后,上图中142行的代码,migrator.migrate(lptoken)也就被随之确定,由migrate的方法是通过imigratorchef的接口来进行调用的,因此在调用的时候,migrate的方法中的逻辑代码会根据migrator值的不同而变化。
简而言之,如果智能合约拥有者将migrator的值指向一个包含恶意migrate方法代码的智能合约,那么该拥有者可以进行任何其想进行的恶意操作,甚至可能取空所有的账户内的代币。