👀 家人們,每天看行情、刷大佬觀點,卻從來不開口說兩句?你的觀點可能比你想的更有價值!
廣場新人 & 回歸福利正式上線!不管你是第一次發帖還是久違回歸,我們都直接送你獎勵!🎁
每月 $20,000 獎金等你來領!
📅 活動時間: 長期有效(月底結算)
💎 參與方式:
用戶需爲首次發帖的新用戶或一個月未發帖的回歸用戶。
發帖時必須帶上話題標籤: #我在广场发首帖 。
內容不限:幣圈新聞、行情分析、曬單吐槽、幣種推薦皆可。
💰 獎勵機制:
必得獎:發帖體驗券
每位有效發帖用戶都可獲得 $50 倉位體驗券。(注:每月獎池上限 $20,000,先到先得!如果大家太熱情,我們會繼續加碼!)
進階獎:發帖雙王爭霸
月度發帖王: 當月發帖數量最多的用戶,額外獎勵 50U。
月度互動王: 當月帖子互動量(點讚+評論+轉發+分享)最高的用戶,額外獎勵 50U。
📝 發帖要求:
帖子字數需 大於30字,拒絕純表情或無意義字符。
內容需積極健康,符合社區規範,嚴禁廣告引流及違規內容。
💡 你的觀點可能會啓發無數人,你的第一次分享也許就是成爲“廣場大V”的起點,現在就開始廣場創作之旅吧!
CertiK:Vyper 5200萬美元損失事件詳解
有報告稱Vyper 0.2.15、0.2.16 和0.3.0 版本存在漏洞,導致Curve 上的許多池有遭受重入攻擊的風險。該漏洞允許攻擊者在移除流動性過程中調用添加流動性函數。
目前,總共有6,930萬美元受到影響,其中1,670萬美元已被白帽黑客追回。這也意味著此次事件造成了5,200萬美元被盜,成為了2023年迄今為止金額最高的重入攻擊。
事件總結
2023年7月30日,專為以太坊虛擬機(EVM)設計的面向合約的編程語言Vyper 編譯器0.2.15、0.2.16 和0.3.0 版本被宣布存在重入鎖失效漏洞。多個DeFi 項目受到該漏洞的影響,損失總額達5,200 萬美元。
CertiK 已確定有六個地址涉及此次事件。第一個(0x172)未能利用區塊17806056 中的漏洞。最初的漏洞利用者從Tornado Cash 提取了0.1 ETH,並繼續創建攻擊合約。然而,一個跑在前面的錢包(0x6Ec21)支付了更多的gas費用,並率先執行了交易,獲得了大約6,100枚WETH(1,140 萬美元)。
由MEV機器人在前置交易失敗的漏洞來源:Etherscan Etherscan
該漏洞導致了進一步的損失:EOA 0xDCe5d 獲得了價值約2,100 萬美元的資產。涉案錢包明細如下圖:
共有6個項目受到影響,約有6,930萬美元被盜走,其中1,670萬美元已被歸還,總計損失約為5,200萬美元。
什麼是Vyper
Vyper 是以太坊虛擬機(EVM)的一種面向合約的pythonic 編程語言。 Vyper 的測試版從2017 年就開始有了,但其首個非測試版本是於2020年7月發布的0.2.1 版。
Solidity是以太坊生態系統中的主流語言,它比Vyper存在的時間要長得多,因此許多社區成員創建了專門使用Solidity 運行的工具。根據DeFiLlama 的數據顯示,在DeFi協議中價值約700 億美元的總鎖倉價值(TVL)中,Vyper 智能合約佔21.7 億美元,而Solidity 則佔絕大多數,高達674.9 億美元。
截至2023年5月10日,Vyper的主導地位從2020 年8月的30%高點降至6.27%。儘管Vyper的TVL 主導地位明顯低於Solidity,但這一事件仍導致6,200萬美元受到影響。
編譯器版本
編譯器版本是指編程語言編譯器的特定版本,編譯器將人類可讀的源代碼轉換為機器可讀的代碼。
編譯器版本會定期更新,以引入功能、修復漏洞並增強安全性。 Vyper 語言目前不提供白客漏洞懸賞計劃。
版本0.2.15 - 0.3.0
上文提到的就是Vyper 的0.2.15、0.2.16 和0.3.0版本中發現了漏洞,導致了多個DeFi項目遭到重入攻擊。
而最早的Vyper 漏洞版本0.2.15 發佈於2021年7 月23日。到同年12月發布0.3.1 版時,之前的漏洞已不復存在。
時間線
事件最初開始於北京時間7月30日晚9點10分,攻擊者針對Curve 上JPEG’d池的交易由於前置運行交易而失敗。
北京時間7月30日晚10點,JPEG’d 確認pETH-ETH Curve池已被惡意利用。
Vyper 隨後宣布,0.2.15、0.2.16 和0.3.0 版本包括了一個失效的重入鎖。 Vyper 發布推文後,Metronome 和Alchemix 也受到了影響。
Metronome DAO 宣布消息:
北京時間第二天凌晨,Curve Finance在Discord 上發佈公告稱,剩餘的資金池不受Vyper Bug的影響,是安全的。
Curve Finance 在Twitter 上宣布,Arbitrum上的一個資金池有可能受到影響,但沒有可供惡意行為者執行的有利可圖的漏洞,這意味著資金池不太可能受到攻擊。 CertiK也尚未檢測到任何其他利用Vyper漏洞的攻擊。
攻擊流程
以下是以JPEG’d為目標的交易示例:
攻擊者: 0x6ec21d1868743a44318c3c259a6d4953f9978538
攻擊合約: 0x466b85b49ec0c5c1eb402d5ea3c4b88864ea0f04#code
1 攻擊者首先從Balancer:Vault中藉入80,000 WETH (約合149,371,300美元)
2 然後,攻擊者將WETH 換成ETH,調用pETH-ETH-f.add_liquidity(),將40,000 ETH(約合74,685,650美元)添加到pETH-ETH-f 池中。作為回報,攻擊者收到了32,431枚pETH(pETH-ETH-f)。
3 攻擊者調用remove_liquidity() 刪除了在步驟2中添加的流動性。 3,740 pETH 和34,316 ETH 被轉入攻擊合約,攻擊合約的fallbak() 函數被觸發了,將控制權交給了攻擊者。在fallback() 函數中,攻擊者又向pETH-ETH-f 池中添加了40,000 ETH的流動性,並收到了82,182 pETH。
4 攻擊者再次調用remove_liquidity(),取出10,272pETH,收到47,506 ETH和1,184pETH。然後,攻擊者在pETH-ETH-f 池中用4,924枚pETH交換了4,285枚ETH。
總的來說,攻擊者從第3步獲得了34,316枚ETH,從第4步獲得了47,506和4,285枚ETH,共計86,107枚ETH。在償還了80,000 ETH閃電貸後,攻擊者還剩下6,107 ETH(約11,395,506美元)。
漏洞
該漏洞允許攻擊者在移除流動性過程中調用添加流動性函數。雖然這些函數本應受到@nonreentrant(‘lock’)的保護,但對add_liquidty() 和remove_liquidity() 函數的測試證明,它並不能防止重入攻擊。
Vyper_contract for Curve.fi Factory Pool 數據源: Etherscan
繼利用JPEG’d、Metronome 和Alchemix 漏洞之後,Vyper 的v0.2.15、v0.2.16 和v0.3.0 版本確實存在重入保護失敗的漏洞。
解決措施
使用易受攻擊的Vyper版本的項目應聯繫Vyper協助進行緩解。項目也應盡量升級到不含此漏洞的最新版Vyper。
總結
Vyper被攻擊事件是CertiK2023 年檢測到的最大的重入漏洞。就資金損失而言,該攻擊損失金額佔據了此類事件的78.6%。
今年兩起最大的重入漏洞,都是利用Vyper編寫的合約,儘管漏洞並不相同。
目前,2023 年所有鏈中因重入攻擊造成的損失已超過6,600 萬美元。這比2020年全年多出約400萬美元,僅比2021年的損失額少100萬美元。值得注意的是,2023年的總額也比2022 年因重新定位攻擊造成的損失增加了259.45%。