前言
北京时间 2022 年 4 月 30 日,知道创宇区块链安全实验室 监测到以太坊上 feiprotocol 和 RariCapital 协议中的多个池子遭到重入攻击,导致损失超 8000 万美元。
知道创宇区块链安全实验室 第一时间跟踪本次事件并分析。
基础信息
众所周知,compound 项目的代码本就存在一些安全问题,而 feiprotocol 和RariCapital协议延用了compound 的代码库,同时在 doTransferOut() 方法的实现中使用了存在重入的写法,导致了事件的发生。
因此次事件中的多次攻击方式相同,本文仅对一次攻击进行分析。
攻击者地址:0x6162759edad730152f0df8115c698a42e666157f
攻击合约:0x32075bad9050d4767018084f0cb87b3182d36c45
tx:0xadbe5cf9269a001d50990d0c29075b402bcc3a0b0f3258821881621b787b35c6
CEtherDelegator合约:0xfbD8Aaf46Ab3C2732FA930e5B343cd67cEA5054C
漏洞分析
漏洞关键在于 CEtherDelegator 合约中的 doTransferOut 方法使用了 call 方法进行代币转移,而在使用时并未对其进行gas限制,导致能够被利用实现重入攻击ÿ