Voltage Finance - 翻车



在Fuse网络上的Voltage Finance因其"借贷即服务"合作伙伴Ola Finance被盗了约400万美元。

与其说是Compound的分叉,Ola将自己描述为"一个技术供应商,使其他人能够开发类似Compound的产品"。

本月早些时候,Gnosis / xDAI链上的一个类似事件给了使用Compound代码的团队足够的警告。

但不知何故,Voltage和Ola都没有得到这个消息。

如果有一个地方可以让开发者及时了解DeFi中的漏洞就好了......

与Agave DAO和Hundred Finance的情况类似,这个漏洞是由于Fuse Network用于跨链桥代币的ERC 677标准中的一个重入漏洞造成的。

这些代币类型包括一个 callAfterTransfer() 函数,可以在余额更新之前被滥用来进行额外的转账(只要底层代码不遵循推荐的执行范式: 检查-实施-交互 )。

原始的Compound代码没有遵循这种模式,然而,所有提议的抵押品代币在被添加到协议之前都会被审查是否存在这种漏洞。

来源: BlockSecTeam

Fuse上的攻击者地址:0x371D7C9e4464576D45f11b27Cf88578983D63d75

交易示例(BUSD):0x1b3e06b6b310886dfd90a5df8ddbaf515750eda7126cf5f69874e92761b1dc90

攻击者合约A:0x632942c9BeF1a1127353E1b99e817651e2390CFF

攻击者合约B:0x9E5b7da68e2aE8aB1835428E6E0c83a7153f6112

1: 合约A将550 WETH转给合约B

2: 合约B存入550WETH,铸成27,284OWETH

3: 合约B借入507,216 BUSD

4: BUSD合约通过 callAfterTransfer() 回调合约B

5: 合约B将507,216 BUSD和27,284 oWETH都转给合约A。

6: 合约A偿还27,284 oWETH以赎回550 WETH的初始存款,并保留507,216 BUSD作为利润。

正如BlockSecTeam解释的那样:

" 在borrow()函数的代码逻辑中,相关的内部状态在外部调用后被更新。具体来说,doTransferOut()函数将调用基于ERC677的代币的transfer()函数,这将最终导致外部调用。"

上述过程被反复使用,以获取$USDC、$FUSD、$WBTC、$WETH 和 $FUSE。

最终资金首先通过跨链桥到以太坊(最初资金来自Tornado Cash),然后被发送到这个地址,在那里它们仍然以ETH、WBTC、USDC(Circle会冻结这些资金吗?)和FUSE的形式存在,价值约310万美元。

Agave和Hundred成为同一攻击媒介的受害者时,我们说:

当一个山寨分叉倒下时,所有其他的分叉都必须检查它们的代码。

Voltage Finance没有这样做,这就是为什么他们在排行榜上有了一席之地(第64位)。


分享本文

REKT作为匿名作者的公共平台,我们对REKT上托管的观点或内容不承担任何责任。

捐赠 (ETH / ERC20): 0x3C5c2F4bCeC51a36494682f91Dbc6cA7c63B514C

声明:

REKT对我们网站上发布的或与我们的服务相关的任何内容不承担任何责任,无论是由我们网站的匿名作者,还是由 REKT发布或引起的。虽然我们为匿名作者的行为和发文设置规则,我们不控制也不对匿名作者在我们的网站或服务上发布、传输或分享的内容负责,也不对您在我们的网站或服务上可能遇到的任何冒犯性、不适当、淫秽、非法或其他令人反感的内容负责。REKT不对我们网站或服务的任何用户的线上或线下行为负责。