人民网

损失近2070万美元,防不胜防?Popsicle Finance被攻击事件全解析

8月4日,链必安-区块链安全态势感知平台(Beosin-Eagle Eye)舆情监测显示,跨链收益率提升平台Popsicle Finance下Sorbetto Fragola产品遭到攻击,导致了约2070万美元的损失,攻击者共获利2.6K WETH,5.4M USDC,5M USDT,160K DAI,10K UNI,和96 WBTC。

事件概览

攻击如何发生 Event overview

首先,跟我们了解一下Popsicle Finance是什么?

这是一个很有意思的项目,主要做跨链流动性挖矿。在DeFi 大热的时候,大家都在找流动性挖矿的机会,希望让自己的资产收益最大化。但因以太坊主网 gas 费用居高不下,给了二层、侧链、其他区块链迅速发展壮大的机会。在多链时代下,Popsicle Finance就在这样的背景下诞生了。

损失近2070万美元,防不胜防?Popsicle Finance被攻击事件全解析

在遭到黑客攻击后,Popsicle Finance团队成员立即发推表示,目前仅有 Sorbetto Fragola 一款产品受到影响。团队将在几周内修复漏洞并对用户损失进行赔偿。

损失近2070万美元,防不胜防?Popsicle Finance被攻击事件全解析

事件具体分析

攻击者如何得手 Event overview

攻击者地址:

0xf9E3D08196F76f5078882d98941b71C0884BEa52

攻击合约:

A:

0xdfb6fab7f4bc9512d5620e679e90d1c91c4eade6

B:

0x576Cf5f8BA98E1643A2c93103881D8356C3550cF

C:

0xd282f740Bb0FF5d9e0A861dF024fcBd3c0bD0dc8

攻击交易:

0xcd7dae143a4c0223349c16237ce4cd7696b1638d116a72755231ede872ab70fc

攻击者使用相同的攻击方式获利了多种代币,以下以USDT为例分析:

Round 1

攻击者使用合约A通过闪电贷获取USDT和ETH。

损失近2070万美元,防不胜防?Popsicle Finance被攻击事件全解析

Round 2

通过合约A调用SorbettoFragola的deposit函数获取凭证代币PLP。

损失近2070万美元,防不胜防?Popsicle Finance被攻击事件全解析

Round 3

将PLP发送给合约B并执行SorbettoFragola的collectFee函数,这时输入的amount均为0,更新合约B的奖励参数。之后将PLP发送到合约C,进行同样的操作。合约C完成操作后将PLP发送回合约A。

损失近2070万美元,防不胜防?Popsicle Finance被攻击事件全解析

损失近2070万美元,防不胜防?Popsicle Finance被攻击事件全解析

损失近2070万美元,防不胜防?Popsicle Finance被攻击事件全解析

损失近2070万美元,防不胜防?Popsicle Finance被攻击事件全解析

因为合约B、C持币,所以会计算更新其奖励(不随代币转移清空),更新后的数值如下图所示:

损失近2070万美元,防不胜防?Popsicle Finance被攻击事件全解析

损失近2070万美元,防不胜防?Popsicle Finance被攻击事件全解析

Round 4

合约A执行SorbettoFragola的withdraw函数,销毁PLP代币。取出本金后更新相关参数为最新。

损失近2070万美元,防不胜防?Popsicle Finance被攻击事件全解析

Round 5

接着合约B与合约C再度执行collectfee函数。

损失近2070万美元,防不胜防?Popsicle Finance被攻击事件全解析

输入的amount为上面更新后的数值tokenReward。

损失近2070万美元,防不胜防?Popsicle Finance被攻击事件全解析

损失近2070万美元,防不胜防?Popsicle Finance被攻击事件全解析

这时因为满足此处条件,所以会到pool地址(UNIV3的对应交易对地址)去移除流动性,并将代币发送给合约B、C。

损失近2070万美元,防不胜防?Popsicle Finance被攻击事件全解析

Round 6

合约C再次调用collectfee函数获利。

损失近2070万美元,防不胜防?Popsicle Finance被攻击事件全解析

此时amount如下图所示:

损失近2070万美元,防不胜防?Popsicle Finance被攻击事件全解析

最后,满足调用pay函数的条件,通过pay函数向合约C发送代币。

损失近2070万美元,防不胜防?Popsicle Finance被攻击事件全解析

损失近2070万美元,防不胜防?Popsicle Finance被攻击事件全解析

事件复盘

我们需要注意什么 Case Review

Popsicle Finance最初管理的是跨链流动性,于6月26日推出Sorbetto Fragola以管理Uniswap v3流动性。

项目方应该也没有预料到,黑客会在今日进行攻击,导致了约2070万美元的损失。可见,安全预判是多么重要。

损失近2070万美元,防不胜防?Popsicle Finance被攻击事件全解析

注意

成都链安在此建议,对于项目方而言,在PLP转移时,应该重新计算并更新PLP发送方与接收方的奖励值,避免奖励重复发放。此外,项目的逻辑缺陷一定要得到重视。

免责声明:本文来自网络投稿,观点仅代表作者本人,不代表芒果财经赞同其观点或证实其描述,版权归原作者所有。转载请注明出处:https://www.mgcj.net/372784.html
温馨提示:投资有风险,入市须谨慎。本资讯不作为投资理财建议。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注