OrionProtocol遭重入攻擊 損失290萬美元加密資產

OrionProtocol遭受重入攻擊事件分析

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

攻擊過程分析

攻擊者首先部署了一個特制的Token合約,並進行了必要的轉移和授權操作爲後續攻擊做準備。隨後,攻擊者通過某DEX的swap功能借入資金,並調用OrionProtocol的ExchangeWithAtomic.swapThroughOrionPool方法進行代幣兌換。兌換路徑設置爲[USDC, 攻擊者Token, USDT]。

在兌換過程中,攻擊者的Token合約利用其transfer函數回調ExchangeWithAtomic.depositAsset方法,實現了重入攻擊。這導致存款金額被重復計算,攻擊者隨後通過提款操作獲取了超額利潤。

OrionProtocol 重入攻擊分析附PoC

資金流向

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

OrionProtocol 重入攻擊分析附PoC

漏洞分析

核心漏洞存在於doSwapThroughOrionPool和_doSwapTokens函數中。關鍵問題在於合約在執行轉帳操作後才更新curBalance變量,這爲重入攻擊創造了條件。攻擊者通過在自定義Token的transfer函數中添加回調邏輯,使得depositAsset函數被重復調用,導致curBalance被錯誤更新。

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

防範建議

  1. 遵循"檢查-生效-交互"(Checks-Effects-Interactions)模式,確保狀態變量的更新先於外部調用。

  2. 實施重入鎖,防止函數在執行過程中被再次調用。

  3. 全面考慮各種Token類型和兌換路徑可能帶來的安全隱患。

  4. 加強對外部調用的限制和監控,特別是涉及資金轉移的操作。

  5. 定期進行安全審計,及時發現和修復潛在漏洞。

本次事件再次強調了在開發智能合約時必須嚴格遵守安全編碼規範的重要性。項目方應該持續關注合約安全,採取多重防護措施,以最大限度地降低遭受攻擊的風險。

TOKEN-1.25%
ETH-0.42%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 6
  • 轉發
  • 分享
留言
0/400
New_Ser_Ngmivip
· 07-13 12:19
又黑客薅羊毛了
回復0
Degen McSleeplessvip
· 07-13 03:32
又一个项目裂开咯~
回復0
SatoshiSherpavip
· 07-12 13:26
又见智能合约入手 啧啧
回復0
VCsSuckMyLiquidityvip
· 07-10 17:44
又一个倒下的 不意外
回復0
GasFeeDodgervip
· 07-10 17:37
又一项目寄了 溜了溜了
回復0
FOMOSapienvip
· 07-10 17:16
又一条铁矿钓鱼
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)