火星链 火星链
Ctrl+D收藏火星链

GOL:被空手套白狼,损失近2100万美元——跨链收益率平台Popsicle遭遇了什么?

作者:

时间:1900/1/1 0:00:00

原标题:《空手套白狼——Popsicle被黑分析》

2021年08月04日,据慢雾区消息,跨链收益率平台PopsicleFinance的SorbettoFragola产品遭受黑客攻击,慢雾安全团队第一时间介入分析,并将结果分享如下。

攻击背景

在本次攻击中,攻击者通过创建3个攻击合约来完成对SorbettoFragola的攻击,以下是本次攻击涉及的具体地址:

攻击者:

H1:0x3A9D90eD069021057d9d11E78F142F2C4267934A

H2:0xf9E3D08196F76f5078882d98941b71C0884BEa52

攻击合约:

C1:0xdFb6faB7f4bc9512d5620e679E90D1C91C4EAdE6

C2:0x576cf5f8ba98e1643a2c93103881d8356c3550cf

C3:0xd282f740bb0ff5d9e0a861df024fcbd3c0bd0dc8

SorbettoFragola:

0xc4ff55a4329f84f9Bf0F5619998aB570481EBB48

攻击对象

通过官方的介绍我们可以知道被攻击的SorbettoFragola产品主要是用于帮助用户管理UniswapV3头寸,以避免用户在UniswapV3做市的头寸超出所选定的价格范围。用户可以在SorbettoFragola中存入提供流动性对应的两种代币,SorbettoFragola会给到用户PopsicleLP(PLP)凭证,用户使用此凭证可以获取奖励并取回抵押的流动性资金,同时此凭证也是可以随意转移给其他用户的。

攻击核心

此次攻击的核心在于,SorbettoFragola中通过用户持有的PLP凭证数量来参与计算用户所能获得的奖励,但PLP凭证是可以随意转移给其他用户的,但其凭证转移的过程中没有进行奖励结算转移等操作。这就导致了只要持有PLP凭证就可以立即获取奖励。最终造成同个PLP凭证却能在同个时间节点给多个持有者带来收益。接下来我们对整个攻击细节进行详细分析。

香港正在探索推出稳定币HKDG:金色财经报道,香港正在探索推出稳定币HKDG,以与USDT和USDC等成熟稳定币竞争。通过用外汇储备支持HKDG,政府寻求促进金融创新并维护其在区块链领域的领导地位。通过发行与港元挂钩的稳定币(HKDG),政府旨在提高交易效率、降低成本并改善现有支付系统。此举预计将增强香港的金融科技能力,并提高其金融体系的效率和包容性。然而,政府目前的计划允许私人机构发行港元稳定币,这可能会限制其市场份额和整体影响。[2023/7/5 22:18:02]

攻击细节

攻击首先通过H1地址创建了攻击合约C1、C2与C3,随后攻击者通过H2地址调用了攻击合约C1开始进行具体的攻击,交易为:

0xcd7dae143a4c0223349c16237ce4cd7696b1638d116a72755231ede872ab70fc。

通过分析此交易我们可以发现,其先从AAVE中利用闪电贷借出了30,000,000个USDT、13,000个WETH、1,400个WBTC、30,000,000个USDC、3,000,000个DAI、200,000个UNI,为后续在SorbettoFragola中提供流动性获得PLP凭证做准备。

随后攻击者调用SorbettoFragola合约的deposit函数存入提供流动性对应的两种代币(这里以攻击者首次存入的WETH与USDT代币为例),其会先通过checkDeviation与updateVault修饰器分别检查价格与更新奖励。价格检查主要是针对价格是否出现大波动被操控等情况,这里不做展开。而奖励更新就与本次攻击密切相关了,我们切入分析:

Polygon链上NFT销售总额超10亿美元:6月4日消息,CryptoSlam 数据显示,Polygon 链上 NFT 销售总额已突破 10 亿美元,截至发文时链上交易总量为 13,043,125 笔。目前 Polygon 的 NFT 销售额排名第五,仅次于以太坊(约 434.1 亿美元)、Ronin(约 42.4 亿美元)、Solana(约 39.9 亿美元)以及 Flow(约 12.9 亿美元)。[2023/6/4 11:56:59]

可以看到其调用了_updateFeesReward函数进行具体的更新操作,我们跟进此函数:

从上图我们可以很容易的发现其先通过positionLiquidity函数获取tickLower与tickUpper范围内合约所持有的流动性数量。然后通过_earnFees函数从UniswapV3Pool中收取提供流动性奖励。之后再通过_tokenPerShare函数计算每个PLP凭证所能分得的流动性奖励。最后通过_fee0Earned与_fee1Earned函数来计算用户所持有的PLP凭证数量可以获得多少奖励,并使用

数据:Voyager本月从Coinbase转移约1.54亿USDC:金色财经报道,链上数据显示Voyager的资产正在流动。根据交易记录,本月约有1.544亿美元的USDC从Coinbase转移到关闭的交易所的“Voyager1”以太坊钱包。

Web3分析公司Arkham Intelligence表示,Voyager一直在“以每周1亿美元左右的速度”出售资产。它补充说,该公司“在两个非常大的钱包里有7亿美元”。据Arkham称,Voyager钱包包含2.68亿美元的ETH、2.36亿美元的USDC和另外7700万美元的SHIB。[2023/2/28 12:33:18]

user.token0Rewards与user.token1Rewards变量进行记录,如下图所示:

但由于此时攻击者刚进行充值操作,还未获得PLP凭证,因此其user.token0Rewards与user.token1Rewards变量最终记录的自然是0。

看到这里你可能已经意识到问题所在了,既然user.token0Rewards与user.token1Rewards变量记录的奖励是根据用户持有的PLP凭证进行计算的,且PLP凭证是可以转移的,那么是否只要持有PLP凭证再去触发此变量记录奖励就可以让我们获得奖励。答案自然是肯定的。我们继续看deposit函数:

在奖励更新之后通过liquidityForAmounts函数计算出在目标价格区间内用户提供资金所占的流动性然后调用UniswapV3Pool?mint函数注入流动性。随后通过_calcShare计算出SorbettoFragola所需要铸造给用户的PLP凭证数量。

元宇宙游戏Worldwide Webb宣布完成1000万美元A轮融资:金色财经报道,由艺术家和游戏设计师 Thomas Webb 创立的元宇宙游戏 Worldwide Webb 今天公布了 1000 万美元的 A 轮融资,由风险投资公司 Pantera Capital 领投。这是该游戏自 2020 年首次亮相以来的第一轮外部融资。Worldwide Webb 是一种完全在线的、基于浏览器的体验,让玩家可以插入以太坊钱包并使用来自数百个流行收藏的 NFT 头像,包括 Bored Ape Yacht Club、CryptoPunks、Doodles、Cool猫、Deadfellaz等等。[2023/2/23 12:25:49]

在攻击者获得PLP凭着后也正如我们所想的那样将PLP凭证转移给其他地址,并调用SorbettoFragola合约collectFees函数来进行奖励记录。

通过上图的PLP凭证链上转移记录我们可以看到,在攻击合约C1获得PLP凭证后,将其转移给了攻击合约C2,随后调用了collectFees函数。之后攻击合约C2再将PLP凭证转移给攻击合约C3再次调用了collectFees。最后攻击合约C3将PLP凭证转移回攻击合约C1。我们切入collectFees函数进行分析:

Ren团队:Alameda破产后,Ren Protocol需要新的资金支持:11月19日消息,在Alameda崩溃后,DeFi协议Ren Protocol面临没有足够的资金来发展的危险。Ren是一个基于以太坊的DeFi协议,它可以铸造被封装的加密资产,来桥接到以太坊和BNB链。Ren自成立以来已经处理了超过130亿美元的跨链交易量。Alameda 自2021年初收购了Ren并在每季度为Ren的开发提供70万美元资金。

Ren团队透露,目前的资金只够开发至第四季度结束,该项目的剩余资金约为16万美元。现在,Ren希望从其他来源获得资金。该团队周五透露,它正在与社区成员一起探索各种机会。这些选择可能会由RenDAO社区投票决定。除了获得新的资金外,Ren团队还希望推出最新版本的协议Ren 2.0。[2022/11/20 22:07:46]

通过上图我们可以很容易的看出此函数也有updateVault修饰器,而经过上面的分析我们可以知道updateVault修饰器用于奖励更新,因此在攻击合约C2持有PLP凭证的情况下调用collectFees函数触发updateVault修饰器则会根据其持有的PLP凭证数量来计算应分得的奖励,并记入用户的token0Rewards与token1Rewards变量。需要注意的是此时对于此类PLP凭证持有者缓存的tokenPerSharePaid变量是0,这直接导致了用户可以获得PLP凭证持有奖励。

我们从链上状态的变化也可以看出:

随后攻击合约C2也如法炮制即可获得奖励记录。

最后PLP凭证转移回到攻击合约C1,并调用了SorbettoFragola合约的withdraw函数燃烧掉PLP凭证取回先前存入的WETH与USDT流动性。并且攻击合约C2、C3分别调用collectFees函数传入所要领取的奖励数量以领取奖励。这样攻击者在同个区块中不仅拿回了存入的流动性还额外获得多份流动性提供奖励。

随后攻击者开始利用其他的代币对如法炮制的薅取奖励,如下图所示:

攻击流程

1、攻击者创建多个攻击合约,并从AAVE中利用闪电贷借出大量的代币;

2、攻击者使用借来的代币存入SorbettoFragola合约中获得PLP凭证;

3、攻击者利用SorbettoFragola合约的奖励结算缺陷问题将获得的PLP凭证在其创建的攻击合约之间进行转移并分别调用了SorbettoFragola合约的collectFees函数来为各个攻击合约纪录奖励;

4、攻击者燃烧PLP凭证取回在SorbettoFragola合约中存入的流动性资金,并通过各个攻击合约调用SorbettoFragola合约的collectFees函数来获取纪录的奖励;

5、不断的循环上述操作攻击各个流动性资金池薅取奖励;

6、归还闪电贷获利走人。

MistTrack分析过程

慢雾AML团队分析统计,本次攻击损失了约4.98MUSDT、2.56KWETH、96WBTC、5.39MUSDC、159.93KDAI、10.49KUNI,接近2100万美元。

资金流向分析

慢雾AML旗下MistTrack反追踪系统分析发现,攻击者H1地址首先从Tornado.Cash提币获取初始资金随后部署了三个攻击合约:

攻击获利后通过UniswapV3将获得的代币兑换成ETH再次转入了Tornado.Cash:

目前攻击者账户余额仅为0.08ETH,其余资金均已通过Tornado.Cash进行转移。

总结

本次漏洞的核心在于由于奖励更新记录缺陷导致同个PLP凭证能在同个时间节点给多个持有者都带来收益。针对此类漏洞,慢雾安全团队建议在进行凭证转移前应处理好奖励结算问题,记录好转移前后用户的奖励缓存,以避免再次出现此类问题。

参考攻击交易:

https://etherscan.io/tx/0xcd7dae143a4c0223349c16237ce4cd7696b1638d116a72755231ede872ab70fc

标签:OLASORGOLFRASolareumsorceressprotocolYaki GoldFrasindo Rent

比特币价格热门资讯
BIT:滴滴下架之后,谁来保障我们的数据安全?区块链+隐私计算是否可行?

2021年6月30日,在没有任何宣传的情况下,滴滴在美股上市,本是一个好消息,却随着7月2日中央网信办“关于对‘滴滴出行’启动网络安全审查的公告”引起轩然大波.

1900/1/1 0:00:00
Conic:融资新闻|NFT解决方案Iconic完成150万美元融资,Kenetic领投

在由区块链生态系统风险投资公司Kenetic和其他私人投资者领投的一轮融资中,Ioconic筹集了150万美元,以推动其在NFT和数字资产领域的雄心壮志.

1900/1/1 0:00:00
BLO:Blockchain Australia CEO:政府不应该仍将加密领域视为“狂野西部”

据Cointelegraph8月9日消息,上周在澳大利亚参议院关于技术和金融中心的特别委员会上,加密行业协会BlockchainAustralia首席执行官SteveVallas表示.

1900/1/1 0:00:00
VER:Metaverse AI完成数百万美元种子轮融资,Polygon等参投

据星球日报消息,虚拟元宇宙全栈技术公司MetaverseAI完成数百万美元种子轮融资,ProtocolLabs、ClusterCapital、AlphabitDigitalCurrencyFun.

1900/1/1 0:00:00
LIC:科普 | 理解闪电网络---构建比特币的双向支付通道

原文标题:《科普|理解闪电网络,Part-1:构建比特币的双向支付通道》作者:AARONVANWIRDUM闪电网络可能是比特币区块链上最受期待的创新.

1900/1/1 0:00:00
PLE:PleasrDAO使用NFT作为350万美元贷款的抵押品

据decrypt7月16日消息,投资收藏品协议PleasrDAO使用NFT作为贷款的抵押品,PleasrDAO在过去几个月里一直在购买价值数百万美元的NFT.

1900/1/1 0:00:00