# OrionProtocol遭受重入攻擊導致290萬美元損失2023年2月2日,OrionProtocol在以太坊和幣安智能鏈上因合約漏洞遭到重入攻擊,總計損失約290萬美元。攻擊者利用自創的Token合約進行回調,成功繞過了合約的安全機制。## 攻擊過程分析攻擊者首先創建了一個自定義Token合約,並進行了一系列準備工作。隨後,攻擊者通過某DEX的swap方法借款,並調用OrionProtocol的swapThroughOrionPool方法進行代幣兌換。兌換路徑中包含了攻擊者創建的Token合約地址。在兌換過程中,攻擊者利用自創Token的transfer方法觸發回調,再次調用OrionProtocol的depositAsset方法。這導致存款金額被重復計算,從而使攻擊者能夠提取超出實際存入量的資金。## 資金流向攻擊者的初始資金來自某交易平台的熱錢包。攻擊獲利的1651個ETH中,657.5個仍留在攻擊者的錢包地址中,其餘已通過混幣服務轉移。## 漏洞分析漏洞的核心在於doSwapThroughOrionPool和_doSwapTokens函數。合約在執行轉帳操作後才更新curBalance變量,這給了攻擊者利用重入攻擊的機會。攻擊者通過在自定義Token的transfer函數中添加回調邏輯,導致curBalance被錯誤更新,最終實現超額提款。## 攻擊復現研究人員提供了部分POC代碼,展示了如何利用該漏洞進行攻擊。測試結果與實際攻擊的調用棧一致,證實了漏洞的存在和可利用性。## 安全建議對於具有代幣兌換功能的智能合約,開發者需要考慮多種Token和兌換路徑可能帶來的安全風險。建議遵循"先判斷、後寫入變量、再進行外部調用"的編碼規範(Checks-Effects-Interactions模式),以提高合約的安全性和穩定性。此次事件再次強調了在智能合約開發中重視安全性的重要性,尤其是在處理資金流動時。項目方應當加強代碼審計,並考慮引入專業的區塊鏈安全團隊進行全面評估,以最大程度地降低潛在風險。
OrionProtocol遭重入攻擊 損失290萬美元
OrionProtocol遭受重入攻擊導致290萬美元損失
2023年2月2日,OrionProtocol在以太坊和幣安智能鏈上因合約漏洞遭到重入攻擊,總計損失約290萬美元。攻擊者利用自創的Token合約進行回調,成功繞過了合約的安全機制。
攻擊過程分析
攻擊者首先創建了一個自定義Token合約,並進行了一系列準備工作。隨後,攻擊者通過某DEX的swap方法借款,並調用OrionProtocol的swapThroughOrionPool方法進行代幣兌換。兌換路徑中包含了攻擊者創建的Token合約地址。
在兌換過程中,攻擊者利用自創Token的transfer方法觸發回調,再次調用OrionProtocol的depositAsset方法。這導致存款金額被重復計算,從而使攻擊者能夠提取超出實際存入量的資金。
資金流向
攻擊者的初始資金來自某交易平台的熱錢包。攻擊獲利的1651個ETH中,657.5個仍留在攻擊者的錢包地址中,其餘已通過混幣服務轉移。
漏洞分析
漏洞的核心在於doSwapThroughOrionPool和_doSwapTokens函數。合約在執行轉帳操作後才更新curBalance變量,這給了攻擊者利用重入攻擊的機會。攻擊者通過在自定義Token的transfer函數中添加回調邏輯,導致curBalance被錯誤更新,最終實現超額提款。
攻擊復現
研究人員提供了部分POC代碼,展示了如何利用該漏洞進行攻擊。測試結果與實際攻擊的調用棧一致,證實了漏洞的存在和可利用性。
安全建議
對於具有代幣兌換功能的智能合約,開發者需要考慮多種Token和兌換路徑可能帶來的安全風險。建議遵循"先判斷、後寫入變量、再進行外部調用"的編碼規範(Checks-Effects-Interactions模式),以提高合約的安全性和穩定性。
此次事件再次強調了在智能合約開發中重視安全性的重要性,尤其是在處理資金流動時。項目方應當加強代碼審計,並考慮引入專業的區塊鏈安全團隊進行全面評估,以最大程度地降低潛在風險。