ETH:Popsicle Finance闪电贷攻击事件分析-ODAILY

前言

北京时间8月4日上午,知道创宇区块链安全实验室监测到以太坊上的DeFi协议PopsicleFinance遭遇闪电贷袭击,目前只有SorbettoFragola受到影响。实验室第一时间跟踪本次事件并分析。

分析

攻击者信息

攻击tx:

Connext:41%的符合条件的钱包已领取NEXT:金色财经报道,Connext表示,41%的符合条件的钱包已领取NEXT。符合条件的地址有57,801个,迄今为止已申领地址为23,714个。大多数NEXT在Arbitrum上被直接领取,Polygon和Optimism排名第二和第三位,迄今为止排名第一的委托代表是L2BEAT。[2023/9/8 13:25:31]

0xcd7dae143a4c0223349c16237ce4cd7696b1638d116a72755231ede872ab70fc

攻击合约:

0xdFb6faB7f4bc9512d5620e679E90D1C91C4EAdE6

Gemini:周四下午是Genesis重组方案最后期限,如不同意将提起诉讼:金色财经报道,破产的加密借贷平台Genesis最大债权人Gemini表示,周四下午定为重组方案最后期限,否则该公司提起诉讼。Cameron Winklevoss提出的重组方案包括2.75亿美元的延期付款、两年内到期的3.55亿美元部分债务以及五年内到期的8.35亿美元部分债务。根据要约,DCG将保留出售Genesis贷款部门的收益。

Winklevoss 表示,如果Silbert和DCG不同意,Gemini将起诉Silbert和 DCG,并提出动议,要求DCG违约并要求立即偿还债务。根据法庭文件,尽管Genesis的贷款部门最初制定了在5月之前退出破产的计划,但尚未与债权人就重组计划达成协议,该公司欠债权人超过30亿美元,其中最大的债权人是Gemini。[2023/7/7 22:23:25]

辅助攻击合约1:

USDC与DAI双双回升至0.98美元上方:金色财经报道,CoinGecko数据显示,USDC价格已回升至0.98美元上方,目前报0.987856美元。DAI价格也已回升至0.98美元上方,目前报0.987856美元。

金色财经此前报道,美联储宣布新的紧急银行定期融资计划,SVB硅谷银行的储户周一将可以动用所有资金。[2023/3/13 12:59:24]

0x576Cf5f8BA98E1643A2c93103881D8356C3550cF

辅助攻击合约2:

0xd282f740Bb0FF5d9e0A861dF024fcBd3c0bD0dc8

标记为“Fake_Phishing7960”的账户地址向Tornado Cash转入10枚ETH:金色财经报道,据CertiK监测,被Etherscan标记为“Fake_Phishing7960”的账户地址 0x67A33 向Tornado Cash 转入10枚ETH。在过去5天内,该钱包总共向Tornado Cash 转移了19枚ETH(约2.98万美元)。[2023/3/5 12:43:42]

被攻击池信息:

PLP(USDT/WETH):0xc4ff55a4329f84f9Bf0F5619998aB570481EBB48

PLP(USDC/WETH):0xd63b340F6e9CCcF0c997c83C8d036fa53B113546

PLP(WBTC/WETH):0x0A8143EF65b0CE4C2fAD195165ef13772ff6Cca0

PLP(USDT/WETH):0x98d149e227C75D38F623A9aa9F030fB222B3FAa3

PLP(WBTC/USDC):0xB53Dc33Bb39efE6E9dB36d7eF290d6679fAcbEC7

PLP(USDC/WETH):0x6f3F35a268B3af45331471EABF3F9881b601F5aA

PLP(DAI/WETH):0xDD90112eAF865E4E0030000803ebBb4d84F14617

PLP(UNI/WETH):0xE22EACaC57A1ADFa38dCA1100EF17654E91EFd35

攻击流程:

PLP池合约方面调用流程

攻击合约0xdFb6调用PLP池合约的deposit()函数进行质押

将质押获得的shares转移给辅助攻击合约0x576C

通过辅助攻击合约0x576C调用PLP池合约的collectFees()函数

辅助攻击合约0x576C将步骤2获得的所有shares再次转移给下一个辅助攻击合约0xd282

同步骤3,辅助攻击合约0xd282调用PLP池合约的collectFees()函数

辅助攻击合约0xd282将步骤4获得的所有shares转移回攻击合约0xdFb6

攻击合约0xdFb6调用PLP池合约的withdraw()函数进行赎回,完成攻击

辅助攻击合约0x576C和0xd282调用PLP池合约的collectFees()函数提取手续费奖励

细节

攻击者通过AAVE闪电贷借来USDT、ETH、WBTC、USDC、DAI、UNI六种资产依次对PopsicleFinance的SorbettoFragola系列的8个PLP池进行了闪电贷攻击。

漏洞原因在于PLP池合约对手续费奖励的计算上,一方面在计算中直接采用了用户的LP余额值,而LP可被随意转账至另一账户;另一方面,用户的奖励债务并不会随着LP的转账而转移。

于是攻击者在质押后将LP依次转移给两个辅助攻击合约,并在辅助攻击合约调用collectFees()函数时传参0,为了触发updateVault以更新奖励数据,最后再通过collectFees()提取奖励。

总结

此次PopsicleFinance遭遇的闪电贷攻击的本质原因在于对手续费奖励计算的错误设计,未做全面考虑,从而使得攻击者通过多个地址循环利用资金流进行攻击套利。

近期,各类合约漏洞安全事件频发,合约审计、风控措施、应急计划等都有必要切实落实。

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

链链资讯

[0:15ms0-8:450ms