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)憑證,用戶使用此憑證可以獲取獎勵并取回抵押的流動性資金,同時此憑證也是可以隨意轉移給其他用戶的。
數據:3000萬枚MATIC從未知錢包轉移到Polygon Staking:金色財經報道,據Whale Alert監控數據顯示,3000萬枚 MATIC(32,719,715 美元)于今日 19:01(北京時間)從未知錢包轉移到 Polygon Staking。[2023/4/9 13:53:35]
攻擊核心
此次攻擊的核心在于,SorbettoFragola中通過用戶持有的PLP憑證數量來參與計算用戶所能獲得的獎勵,但PLP憑證是可以隨意轉移給其他用戶的,但其憑證轉移的過程中沒有進行獎勵結算轉移等操作。這就導致了只要持有PLP憑證就可以立即獲取獎勵。最終造成同個PLP憑證卻能在同個時間節點給多個持有者帶來收益。接下來我們對整個攻擊細節進行詳細分析。
攻擊細節
攻擊首先通過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憑證做準備。
Silvergate股價收報5.72美元,單日跌幅達57.72%:3月3日消息,據新浪財經行情顯示,加密友好銀行Silvergate股價收報5.72美元,單日跌幅達57.72%,較240美元附近的盤中歷史最高點(2021年12月31)已跌去約97.61%。
金色財經此前報道,Silvergate此前的客戶Coinbase、 Tether、Circle、Paxos、 Crypto.com、Bitstamp、Cboe Digital Markets、LedgerX、Galaxy和Gemini紛紛表示他們將暫停與該銀行的業務,Circle也表示正解除與其的部分服務,MicroStrategy也澄清與Silvergate的關系。[2023/3/3 12:40:10]
隨后攻擊者調用SorbettoFragola合約的deposit函數存入提供流動性對應的兩種代幣(這里以攻擊者首次存入的WETH與USDT代幣為例),其會先通過checkDeviation與updateVault修飾器分別檢查價格與更新獎勵。價格檢查主要是針對價格是否出現大波動被操控等情況,這里不做展開。而獎勵更新就與本次攻擊密切相關了,我們切入分析:
可以看到其調用了_updateFeesReward函數進行具體的更新操作,我們跟進此函數:
從上圖我們可以很容易的發現其先通過positionLiquidity函數獲取tickLower與tickUpper范圍內合約所持有的流動性數量。然后通過_earnFees函數從UniswapV3Pool中收取提供流動性獎勵。之后再通過_tokenPerShare函數計算每個PLP憑證所能分得的流動性獎勵。最后通過_fee0Earned與_fee1Earned函數來計算用戶所持有的PLP憑證數量可以獲得多少獎勵,并使用
國際帆船大獎賽SailGP與NEAR達成合作探索DAO治理:金色財經報道,據國際帆船大獎賽 SailGP 官方網站消息,他們已與NEAR達成合作,SailGP 將探索將在 NEAR協議上啟動 DAO,允許社區成員參與運動員選擇、團隊管理、商業化選項、運營和團隊戰略等決策。據悉,在遵守所有適用的法律和法規前提下,DAO 團隊最早可以在 2023 年第 4 賽季加入 SailGP。此外,NEAR 還將為 SailGP 提供票務、NFT、應用程序集成和游戲等服務,推動粉絲參與、數據交付和管理。[2022/9/19 7:06:47]
user.token0Rewards與user.token1Rewards變量進行記錄,如下圖所示:
但由于此時攻擊者剛進行充值操作,還未獲得PLP憑證,因此其user.token0Rewards與user.token1Rewards變量最終記錄的自然是0。
看到這里你可能已經意識到問題所在了,既然user.token0Rewards與user.token1Rewards變量記錄的獎勵是根據用戶持有的PLP憑證進行計算的,且PLP憑證是可以轉移的,那么是否只要持有PLP憑證再去觸發此變量記錄獎勵就可以讓我們獲得獎勵。答案自然是肯定的。我們繼續看deposit函數:
在獎勵更新之后通過liquidityForAmounts函數計算出在目標價格區間內用戶提供資金所占的流動性然后調用UniswapV3Poolmint函數注入流動性。隨后通過_calcShare計算出SorbettoFragola所需要鑄造給用戶的PLP憑證數量。
歐盟知識產權局更新NFT和虛擬商品商標申請指南:金色財經報道,為應對包含虛擬商品和NFT相關術語的商標申請的突然增加,負責歐盟商標注冊的歐盟知識產權局(EUIPO)發布了關于虛擬商品和NFT分類方法的指南。該方法被寫入2023年版指南草案“EUIPO系統用戶的主要參考點”中。
EUIPO將NFT定義為“在區塊鏈中注冊的唯一數字證書,用于數字物品的驗證,但是卻與這些數字物品不同”。
EUIPO表示,虛擬商品和NFT屬于尼斯分類的第9類。這是因為它們被視為數字內容或圖像。在向EUIPO提交申請時,“虛擬商品”和“NFT”這兩個術語本身都是不可接受的。相反,與虛擬商品相關的物品的內容必須是具體的(例如“虛擬商品,即虛擬服裝”)。對于NFT而言,NFT驗證的數字物品也必須是具體的。在將于2023年發布的第12版《尼斯分類》中,術語“通過NFT驗證的可下載的數字文件”將被添加到第9類中。(中國保護知識產權網)[2022/8/17 12:32:07]
在攻擊者獲得PLP憑著后也正如我們所想的那樣將PLP憑證轉移給其他地址,并調用SorbettoFragola合約collectFees函數來進行獎勵記錄。
通過上圖的PLP憑證鏈上轉移記錄我們可以看到,在攻擊合約C1獲得PLP憑證后,將其轉移給了攻擊合約C2,隨后調用了collectFees函數。之后攻擊合約C2再將PLP憑證轉移給攻擊合約C3再次調用了collectFees。最后攻擊合約C3將PLP憑證轉移回攻擊合約C1。我們切入collectFees函數進行分析:
美國職業高爾夫球協會提交NFT相關商標申請:7月26日消息,美國商標律師Mike Kondoudis發推稱,美國職業高爾夫球協會(PGA)向美國專利商標局 (USPTO)提交NFT相關商標申請,范圍涵蓋NFT支持的虛擬商品(數字收藏品)、用于數字收藏品市場和注冊的軟件。[2022/7/26 2:38:43]
通過上圖我們可以很容易的看出此函數也有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
往期回顧
科普|加密貨幣詐騙,你中招了嗎?(下)
慢霧招募令,加入未來的安全獨角獸
梅開二度——PancakeBunny被黑分析
科普|加密貨幣詐騙,你中招了嗎?(上)
假幣的換臉戲法——技術拆解THORChain跨鏈系統“假充值”漏洞
慢霧導航
慢霧科技官網
https://www.slowmist.com/
慢霧區官網
https://slowmist.io/
慢霧GitHub
https://github.com/slowmist
Telegram
https://t.me/slowmistteam
https://twitter.com/@slowmist_team
Medium
https://medium.com/@slowmist
幣乎
https://bihu.com/people/586104
知識星球
https://t.zsxq.com/Q3zNvvF
火星號
http://t.cn/AiRkv4Gz
鏈聞號
https://www.chainnews.com/u/958260692213.htm
免責聲明:作為區塊鏈信息平臺,本站所發布文章僅代表作者個人觀點,與鏈聞ChainNews立場無關。文章內的信息、意見等均僅供參考,并非作為或被視為實際投資建議。
本文來源于非小號媒體平臺:
慢霧科技
現已在非小號資訊平臺發布68篇作品,
非小號開放平臺歡迎幣圈作者入駐
入駐指南:
/apply_guide/
本文網址:
/news/10225373.html
免責聲明:
1.資訊內容不構成投資建議,投資者應獨立決策并自行承擔風險
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表非小號的觀點或立場
上一篇:
比爾·蓋茨再談ChatGPT:將改變我們的世界!
來自:hofreco 翻譯:Odaily|不一樣的NFT“Playbooks”收藏系列由HallofFameResort&EntertainmentCompany和DolphinEnte.
1900/1/1 0:00:00尊敬的用戶: 幣虎交易平臺攜手項目方帶來了800OMCHF活動福利,詳細規則如下:活動:MEME創意挑戰.
1900/1/1 0:00:00尊敬的歐易OKEx用戶:以太坊網絡將于區塊高度12,965,000進行倫敦硬分叉升級。為保障您的資產安全,建議您提前將ETH充值到歐易OKEx,歐易OKEx將協助您處理硬分叉中的一切技術問題.
1900/1/1 0:00:00沈迎月:8.3比特幣兵敗如山倒,以太坊多頭無力,多要謹慎對待貓喜歡吃魚,可貓不會游泳;魚喜歡吃蚯蚓,可魚又不能上岸。上帝給了你很多誘惑,卻不讓你輕易得到.
1900/1/1 0:00:00親愛的Pool-X用戶,Pool-X平臺于2021年08月03日18:00:00(UTC8)上線HYVE活期鎖倉挖礦活動.
1900/1/1 0:00:00金色財經報道,ElectricCoinCompany首席執行官兼Zcash創始人ZookoWilcox今天在一篇博客文章中提議.
1900/1/1 0:00:00