OrionProtocol遭重入攻擊 損失290萬美元

robot
摘要生成中

OrionProtocol遭受重入攻擊事件分析

2023年2月2日下午,以太坊和幣安智能鏈上的OrionProtocol合約因存在漏洞遭到重入攻擊,損失約290萬美元,其中包括以太坊鏈上2,844,766 USDT和BSC鏈上191,606 BUSD。

OrionProtocol 重入攻擊分析附PoC

攻擊過程分析

攻擊者首先創建了一個特殊的Token合約,並進行了一系列準備工作。隨後,攻擊者利用某DEX的swap功能借款,並調用OrionProtocol的swapThroughOrionPool方法進行代幣兌換。兌換路徑包含了攻擊者創建的Token合約地址,這爲後續的回調攻擊埋下伏筆。

OrionProtocol 重入攻擊分析附PoC

在兌換過程中,攻擊者的Token合約通過Transfer函數觸發回調,重復調用OrionProtocol的depositAsset函數,導致存款金額被不斷累加。最終,攻擊者通過提款操作完成了獲利。

OrionProtocol 重入攻擊分析附PoC

資金流向

攻擊者的初始資金來自某交易平台的熱錢包帳戶。獲利的1,651枚ETH中,657.5枚仍留在攻擊者的錢包地址,其餘已通過混幣服務進行轉移。

OrionProtocol 重入攻擊分析附PoC

漏洞分析

漏洞的核心在於doSwapThroughOrionPool和_doSwapTokens函數的實現。合約在轉帳操作後更新curBalance變量,這爲重入攻擊創造了條件。攻擊者通過在自定義Token的transfer函數中添加回調邏輯,導致curBalance被錯誤更新,最終允許攻擊者在償還閃電貸後提取額外資金。

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

攻擊復現

研究人員提供了部分POC代碼,模擬了攻擊過程。測試結果顯示,攻擊者成功利用漏洞獲取了額外的USDT。

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

安全建議

  1. 合約設計時需考慮多種Token和兌換路徑可能帶來的意外情況。
  2. 遵循"先判斷,後寫入變量,再進行外部調用"的編碼規範(Checks-Effects-Interactions模式)。
  3. 加強對外部調用的限制和檢查,特別是涉及資金轉移的操作。
  4. 定期進行安全審計,及時發現和修復潛在漏洞。
  5. 實施多重籤名等額外的安全措施,以防範單點故障。

此次事件再次凸顯了DeFi項目面臨的安全挑戰。開發者應始終保持警惕,不斷完善合約安全性,以保護用戶資產和項目聲譽。

TOKEN15.76%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 4
  • 分享
留言
0/400
Satoshi继承人vip
· 21小時前
需要指出的是,智能合约的reentrancy风险在Solidity课本第一页就写明了,看来又一个项目组没做功课...
回復0
快照日长工vip
· 21小時前
割吧割吧~
回復0
链上冷面笑匠vip
· 21小時前
又是290w,割韭菜抓紧跑
回復0
链上酱油师vip
· 21小時前
好家伙 又被薅羊毛了
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)