🎤 爲偶像應援 · Gate送你直達 Token of Love! 🎶
家人們,現在在Gate廣場爲 打 Token of Love CALL,20 張音樂節門票等你來瓜分!🔥
泫雅 / SUECO / DJ KAKA / CLICK#15 —— 你最期待誰?快來一起應援吧!
📌 參與方式(任選,參與越多中獎幾率越高!)
1️⃣ 本帖互動
點讚 & 轉發本帖 + 投票你最愛的藝人
評論區打出 “我在 Gate 廣場爲 Token of Love 打 Call !”
2️⃣ 廣場發帖爲 TA 打 Call
帶上 #歌手名字# + #TokenOfLove#
發帖內容任選:
🎵 最想現場聽到的歌 + 心情宣言
📣 應援口號(例:泫雅女王衝鴨!Gate廣場全員打 Call!)
😎 自制表情包/海報/短視頻(加分項,更容易中獎!)
3️⃣ 推特 / 小紅書發帖打 Call
同樣帶上 #歌手名字# + #TokenOfLove#
內容同上,記得回鏈到表單 👉️ https://www.gate.com/questionnaire/7008
🎟️ 獎勵安排
廣場優質發帖用戶:8張門票
廣場幸運互動用戶:2張門票
Twitter 優質發帖用戶:5張門票
小紅書優質發帖用戶:5張門票
📌 優質帖文將根據文章豐富度、熱度、創意度綜合評分,禁止小號水貼,原創發帖更易獲獎!
🕒 8
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%。