🎉 #Gate Alpha 第三届积分狂欢节 & ES Launchpool# 聯合推廣任務上線!
本次活動總獎池:1,250 枚 ES
任務目標:推廣 Eclipse($ES)Launchpool 和 Alpha 第11期 $ES 專場
📄 詳情參考:
Launchpool 公告:https://www.gate.com/zh/announcements/article/46134
Alpha 第11期公告:https://www.gate.com/zh/announcements/article/46137
🧩【任務內容】
請圍繞 Launchpool 和 Alpha 第11期 活動進行內容創作,並曬出參與截圖。
📸【參與方式】
1️⃣ 帶上Tag #Gate Alpha 第三届积分狂欢节 & ES Launchpool# 發帖
2️⃣ 曬出以下任一截圖:
Launchpool 質押截圖(BTC / ETH / ES)
Alpha 交易頁面截圖(交易 ES)
3️⃣ 發布圖文內容,可參考以下方向(≥60字):
簡介 ES/Eclipse 項目亮點、代幣機制等基本信息
分享你對 ES 項目的觀點、前景判斷、挖礦體驗等
分析 Launchpool 挖礦 或 Alpha 積分玩法的策略和收益對比
🎁【獎勵說明】
評選內容質量最優的 10 位 Launchpool/Gate
OrionProtocol遭重入攻擊 損失290萬美元資產
OrionProtocol 遭受重入攻擊事件分析
2023年2月2日下午,以太坊和幣安智能鏈上的OrionProtocol項目因合約漏洞遭受重入攻擊,總計損失約290萬美元的資產,其中包括以太坊上2,844,766 USDT和幣安智能鏈上191,606 BUSD。
攻擊過程分析
攻擊者首先部署了一個特殊的Token合約,並進行了一系列準備工作。隨後,攻擊者通過某DEX的swap功能借入資金,並調用OrionProtocol的ExchangeWithAtomic.swapThroughOrionPool方法進行代幣兌換。兌換路徑中包含了攻擊者創建的Token合約地址,這爲後續的回調攻擊做好了鋪墊。
在兌換過程中,由於攻擊者的Token合約中包含回調邏輯,導致在轉帳操作時觸發了對ExchangeWithAtomic.depositAsset方法的重復調用。這種重入攻擊使得存款金額被反復累加,最終攻擊者通過提款操作獲取了超出正常額度的資金。
資金流向
攻擊者的初始資金來源於某交易平台的熱錢包。攻擊獲利的1,651個ETH中,657.5個ETH仍留在攻擊者的錢包地址中,其餘部分已經通過混幣工具進行了轉移。
漏洞分析
攻擊的核心問題出在ExchangeWithAtomic合約的doSwapThroughOrionPool函數中。該函數在處理代幣兌換時,沒有正確處理可能出現的重入情況。具體來說,在_doSwapTokens函數中,代幣轉帳操作後才更新curBalance變量,這爲攻擊者提供了可乘之機。
攻擊者通過在自定義Token的transfer函數中添加回調邏輯,在每次轉帳時觸發depositAsset函數的調用,導致curBalance變量被錯誤更新。最終,攻擊者在歸還閃電貸後,通過withdraw函數提取了超額資金。
漏洞復現
研究人員提供了部分POC代碼,展示了如何利用該漏洞進行攻擊。代碼主要模擬了攻擊者的操作流程,包括創建僞造Token、設置流動性池、進行閃電貸和重入攻擊等步驟。
安全建議
爲避免類似攻擊,項目方在設計合約時應注意以下幾點:
在實現代幣兌換功能時,需要考慮各種Token類型和兌換路徑可能帶來的潛在風險。
遵循"檢查-生效-交互"(Checks-Effects-Interactions)模式編寫合約代碼,即先進行條件檢查,再更新狀態變量,最後才執行外部調用。
使用重入鎖或其他防重入機制來保護關鍵函數。
定期進行安全審計,及時發現和修復潛在漏洞。
考慮引入交易金額限制或交易頻率限制,以降低潛在攻擊的影響。
通過採取這些措施,項目可以顯著提高合約安全性,減少被攻擊的風險。在Web3生態系統中,安全始終應該是首要考慮因素。