OrionProtocol遭受290萬美元重入攻擊 ETH和BSC雙鏈受損

robot
摘要生成中

OrionProtocol遭遇重入攻擊事件分析

事件概述

2023年2月2日,OrionProtocol在以太坊和幣安智能鏈上遭受重入攻擊,導致約290萬美元損失。攻擊者利用合約漏洞,在以太坊鏈上竊取了2,844,766 USDT,在幣安智能鏈上竊取了191,606 BUSD。

OrionProtocol 重入攻擊分析附PoC

攻擊過程分析

  1. 攻擊者首先部署了一個自定義Token合約,爲後續攻擊做準備。

  2. 通過UNI-V2的swap方法進行借貸,並調用ExchangeWithAtomic.swapThroughOrionPool方法進行代幣兌換。兌換路徑包含攻擊者創建的Token合約地址。

  3. 在執行swapThroughOrionPool方法時,攻擊者利用自定義Token合約中的回調函數,重復調用ExchangeWithAtomic.depositAsset方法,導致存款金額被多次累加。

  4. 最後,攻擊者通過取款操作完成獲利。

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

資金流向

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

OrionProtocol 重入攻擊分析附PoC

漏洞分析

核心問題出在doSwapThroughOrionPool函數中。該函數在執行_doSwapTokens時,先進行轉帳操作,然後更新curBalance變量。攻擊者利用自定義Token的transfer函數中添加回調,在curBalance更新前再次調用depositAsset函數,導致餘額計算錯誤。

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

OrionProtocol 重入攻擊分析附PoC

防範建議

  1. 合約設計時需考慮多種Token和兌換路徑可能帶來的安全風險。

  2. 遵循"檢查-生效-交互"(Checks-Effects-Interactions)模式編寫合約代碼,即先進行條件檢查,然後更新狀態變量,最後再進行外部調用。

  3. 增加重入鎖等安全機制,防止重入攻擊。

  4. 定期進行代碼審計和漏洞掃描,及時修復潛在安全隱患。

  5. 限制單次交易的最大金額,設置交易頻率限制等措施,降低潛在攻擊造成的損失。

通過採取這些措施,項目方可以顯著提高合約安全性,降低遭受類似攻擊的風險。持續關注智能合約安全,對於維護Web3生態系統的健康發展至關重要。

ETH0.58%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 5
  • 分享
留言
0/400
StakeOrRegretvip
· 07-15 17:28
又是智能合约的坑
回復0
Token经济学人vip
· 07-15 07:15
让我来解释一下:经典的重入攻击漏洞,基本上是经济套利,但存在智能合约缺陷
查看原文回復0
FreeRidervip
· 07-12 19:16
又一个新韭菜贡献者
回復0
WenMoon42vip
· 07-12 19:09
又一个项目gg了
回復0
Liquidation Survivorvip
· 07-12 19:08
合约又被薅 无语了
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)