Beanstalk - 翻车



从Beanstalk盗走1.81亿美元,但黑客只留下7600万美元。

我们rekt.news记录的是损失,而不是利润,所以本次事件在排行榜上排名第五。

一个恶意的治理提案经由闪电贷成功通过,然后攻击者投票将所有的资产转移给自己。

又有约24800个ETH转入Tornado Cash,25万赃款充入乌克兰战争基金。

这种犯罪浪潮还能持续多久?

来源:Igor Igamberdiev, Peckshield, Kelvin Fichter

使用闪电贷,再加上没有延迟执行提案,让这一次治理攻击成为可能。

攻击者暂时获得了足够的投票权,可以立即执行一个恶意的紧急治理提案,抽干协议。

虽然攻击是即时的,但仍然需要一些准备

......在$BEAN合约中,所有治理行动都有约1天的延迟。攻击者实际上是在昨天提出两个治理提案时设置了这整个事情。

第一个提议(提议#18)偷走了合约中所有的钱。下一个提议(提议#19)将价值25万美元的$BEAN发送到乌克兰的捐赠地址。这个乌克兰提案被命名为Bip18(而不是Bip19)...

一旦延迟过后,攻击就可以执行了:

攻击者的资金来自Synapse协议桥[最初来自Tornado]。

他们用闪电贷获得了:

从Aave获得3.5亿 DAI,5亿 USDC,和1.5亿 USDT;

从Uniswap v2获得3200万 BEAN;

从SushiSwap获得1160万 LUSD。

这些代币被用来为Curve池子增加流动性,用BEAN进行治理投票。

此外,他们部署并投票通过了一个假的BIP-18,将所有的资金从协议合约转移到攻击者身上。

下一步是移除流动性,偿还闪电贷,并将所有收到的资金转换为24800 WETH(7600万美元),这些资金随后被送到Tornado Cash。

黑客地址: 0x1c5dcdd006ea78a7e4783f9e6021c32935a10fb4

黑客合约: 0x79224bc0bf70ec34f0ef56ed8251619499a59def

BIP18提案: 0xe5ecf73603d98a0128f05ed30506ac7a663dbb69

BIP18 提案交易: 0x68cdec0ac76454c3b0f7af0b8a3895db00adf6daaf3b50a99716858c4fa54c6f

Peckshield 提供了每一步攻击过程。

黑客提出一个带有initAddress的恶意提案BIP。

黑客开始攻击的交易:0xcd314668aaa9bbfebaf1a0bd2b6553d01dd58899c508d4729fa7311dc5d33ad7

  1. 闪电贷3.5亿 DAI,5亿 USDC,1.5亿 USDC, 32,425,202 BEAN, 和11,643,065 LUSD

  2. 调用Vyper_contract_bebc.add_liquidity添加3.5亿 DAI,5亿 USDC,1.5亿 USDT,得到979,691,328 3Crv

  3. 调用LUSD3CRV-f.exchange将15,000,000 3Crv兑换成15, 251,318 LUSD

  4. 调用BEAN3CRV-f.add_liquidity将964,691,328 3Crv转换为795,425,740 BEAN3CRV-f

  5. 调用BEANLUSD-f.add_liquidity添加32,100,950 BEAN和26,894,383 LUSD,得到58,924,887 BEANLUSD-f

  6. 将795,425,740 BEAN3CRV-f和58,924,887 BEANLUSD-f存入Diamond中。

  7. Diamond.vote(bip=18)

  8. 执行Diamond.emergencyCommit(bip=18)和黑客提议的_init合约,36,084,584 BEAN和0.54 UNI-V2_WETH_BEAN, 874,663,982 BEAN3CRV-f, 60,562,844 BEANLUSD-f发往黑客合约

  9. 调用BEAN3CRV-f.remove_liquidity_one_coin,移除874,663,982 BEAN3CRV-f获得1,007,734,729 3Crv

  10. 调用BEANLUSD-f.remove_liquidity_one_coin,移除60,562,844 BEANLUSD-f获得28,149,504 LUSD

  11. 通过闪电贷返还11,795,706 LUSD和32,197,543 BEAN

  12. 调用LUSD3CRV-f.exchange将16,471,404 LUSD换成16,184,690 3Crv

  13. 销毁16,184,690 3Crv,得到522,487,380 USDC,365,758,059 DAI,和156,732,232 USDT

  14. 归还给闪电贷150,135,000 USDT, 500,450,000 USDC, 350,315,000 DAI

  15. 销毁0.54 UNI-V2_WETH_BEAN,获得10,883 WETH和32,511,085 BEAN。

  16. 捐赠250,000 USDC给乌克兰的加密货币捐款地址

  17. 将15,443,059 DAI换成15,441,256 USDC

  18. 37,228,637 USDC换成11,822 WETH

  19. 6,597,232 USDT换成2,124 WETH

  20. 共计24,830WETH的利润发送给黑客

然后转到Tornado。

可能是为了避免被怀疑是内部人员所为,协议背后的匿名者Publius决定在一份发表在Discord的声明中透露他们三人的身份。

Omniscia紧急指出,这次攻击不属于他们的审计范围,然而他们的报告确实包括对治理合约的评论。

不管怎么说,鉴于闪电贷对DeFi治理来说并不是一个新威胁,这样的漏洞没有被注意到,令人惊讶。延迟执行链上治理是防止这种情况的一种方法。

这一事件可能会鼓励代币持有者更仔细地检查治理提案。

然而,普通用户可能会期望像Beanstalk这样的严重喊单项目在更有经验的眼睛的警惕下进行。

自行研究。


分享本文

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

捐赠 (ETH / ERC20): 0x3C5c2F4bCeC51a36494682f91Dbc6cA7c63B514C

声明:

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