
1. call调用未对目标合约进行限制,攻击者可以调用任意合约,并接管了抵押挖矿合约的执行流程;<- 主要漏洞,造成本次攻击的根本原因。2. 函数未做防重入攻击;<- 次要漏洞,导致了抵押凭证数量计算错误,不是本次攻击的主要利用点,不过也可凭此漏洞单独发起攻击。
针对这两个问题,成都链安在此建议项目方应做好下面两方面:1. 进行外部合约调用时,建议增加白名单,禁止任意的合约调用,特别是能够控制合约执行流程的关键合约调用;2. 函数做好防重入,推荐使用openzeppelin的ReentrancyGuard合约。
