BEA:只要票数够多,恶意提案可卷走数亿资产!Beanstalk Farm 攻击事件分析

北京时间2022年4月17日,CertiK审计团队监测到Beanstalk协议被恶意利用,导致24,830ETH和36,398,226BEAN遭受损失。攻击者创建了一个恶意提案,通过闪电贷获得了足够多的投票,并执行了该提案,从而从协议中窃取了资产。目前,攻击者已将所有的ETH转移到了TornadoCash。

攻击步骤

攻击前黑客的准备行动:攻击者将一些BEAN代币存入Beanstalk,用以创建恶意提案"InitBip18"。该提案一旦生效,将把协议中的资产转移给攻击者。正式发起攻击流程:①攻击者闪电贷了3.5亿Dai、5亿USDC、1.5亿USDT、3200万Bean和1160万LUSD。②闪电贷的资产被转换为795,425,740BEAN3Crv-f和58,924,887BEANLUSD-f。③攻击者将步骤中获得的所有资产存入Diamond合约,并投票给恶意的BIP18提案。④函数emergencyCommit()被立即调用以执行恶意的BIP18提案。⑤在步骤3和4之后,攻击者能够窃取合约中的36,084,584BEAN,0.54UNIV2(BEAN-WETH),874,663,982BEAN3Crv及60,562,844BEANLUSD-f。⑥攻击者利用在步骤5中窃取的资产来偿还闪电贷,并获得了其余的24,830WETH和36,398,226BEAN作为利润。

漏洞分析

该漏洞的根本原因:

Silo系统中用于投票的BEAN3Crv-f和BEANLUSD-f?可以通过闪电贷获得。然而,由于Beanstalk协议中缺乏反闪电贷机制,攻击者可以借用该协议所支持的众多代币从而为恶意提案投票。

攻击者如何绕过验证:

为了通过"emergencyCommit()"执行提案,攻击者需要绕过以下验证。

验证一:确保BIP被提出后,有24小时的窗口期。验证二:确保对某一特定BIP的投票比例不低于阈值,即?。由于BIP18提案是在一天前创建,因此验证一可被绕过;通过闪电贷,BIP18提案获得了78%以上的投票,超过了67%,因此绕过了验证二。

资产去向

其他细节

漏洞交易

BIP18提案:https://etherscan.io/tx/0x68cdec0ac76454c3b0f7af0b8a3895db00adf6daaf3b50a99716858c4fa54c6f执行BIP18:https://etherscan.io/tx/0xcd314668aaa9bbfebaf1a0bd2b6553d01dd58899c508d4729fa7311dc5d33ad7合约地址

受害者合约:https://etherscan.io/address/0xc1e088fc1323b20bcbee9bd1b9fc9546db5624c5#code攻击者合约:https://etherscan.io/address/0x1c5dcdd006ea78a7e4783f9e6021c32935a10fb4恶意提案:https://etherscan.io/address/0xe5ecf73603d98a0128f05ed30506ac7a663dbb69攻击者初始资金活动:https://arbiscan.io/address/0x71a715ff99a27cc19a6982ae5ab0f5b070edfd35https://debank.com/profile/0x1c5dcdd006ea78a7e4783f9e6021c32935a10fb4/history

?写在最后

通过审计,我们可以发现闪电贷可用于操纵投票这一风险因素。攻击发生后,CertiK的推特预警账号以及官方预警系统已于第一时间发布了消息。同时,CertiK也会在未来持续于官方公众号发布与项目预警相关的信息。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:15ms0-8:233ms