OrionProtocol遭重入攻擊 290萬美元被盜

robot
摘要生成中

OrionProtocol合約漏洞導致290萬美元損失

2023年2月2日,以太坊和幣安智能鏈上的OrionProtocol合約遭受重入攻擊,造成約290萬美元的損失。具體損失包括以太坊鏈上2,844,766 USDT和幣安智能鏈上191,606 BUSD。

攻擊過程分析

攻擊者首先部署了一個特制的Token合約,並進行了相關的轉移和授權操作。隨後,攻擊者通過某DEX的swap方法借入資金,並調用OrionProtocol的swapThroughOrionPool方法進行代幣兌換。兌換路徑包含了攻擊者創建的Token合約地址。

在執行swapThroughOrionPool方法時,由於攻擊者的Token合約中包含回調功能,使得在轉帳過程中能夠重復調用depositAsset方法。這導致存款金額被重復計算,最終攻擊者通過提款操作獲取了超額收益。

OrionProtocol 重入攻擊分析附PoC

資金流向

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

OrionProtocol 重入攻擊分析附PoC

漏洞核心

問題出在doSwapThroughOrionPool函數中。該函數在執行_doSwapTokens時,先進行了轉帳操作,然後才更新curBalance變量。攻擊者利用自定義Token的transfer函數回調depositAsset方法,導致curBalance被錯誤更新。這使得攻擊者在償還閃電貸後,能夠通過withdraw函數提取超額資金。

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

安全建議

對於具有代幣兌換功能的智能合約,開發者需要考慮以下幾點:

  1. 考慮多種Token和兌換路徑可能帶來的意外情況。
  2. 遵循"檢查-生效-交互"(Checks-Effects-Interactions)的編碼模式,即先進行狀態檢查,再更新合約狀態,最後與外部合約交互。
  3. 在進行外部調用前更新關鍵狀態變量。
  4. 實施重入鎖等安全機制。
  5. 對合約進行全面的安全審計。

通過採取這些措施,可以大大降低智能合約被攻擊的風險,提高項目的安全性和穩定性。

TOKEN5.1%
ETH3.23%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 1
  • 分享
留言
0/400
BoredStakervip
· 20小時前
又是重入攻击
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)