Sushiswap: 代币取空与重入攻击漏洞(2)
大约 1 分钟
Sushiswap: 代币取空与重入攻击漏洞(2)
2020年8月28日,CertiK安全研究团队发现Sushiswap智能合约存在代币取空和重入攻击两大潜在漏洞。该漏洞导致1 至 1.5 万美元的损失。
代币取空:
根据两个function可以导致代币取空操作,setMigrator和migrate。
https://github.com/sushiswap/sushiswap/blob/master/contracts/MasterChef.sol
https://github.com/sushiswap/sushiswap/blob/master/contracts/MasterChef.sol
如果智能合约拥有者将migrator的值通过setMigrator指向一个包含恶意migrate方法代码的智能合约,那么该拥有者可以进行任何其想进行的恶意操作,甚至可能取空所有的账户内的代币。
重入攻击:
在上图142行中执行结束migrator.migrate(lpToken)这一行代码后,智能合约拥有者可以利用重入攻击漏洞,再次重新执行从136行开始的migrate方法或者其他智能合约方法,进行恶意操作。