OrionProtocol遭重入攻击 损失290万美元

robot
摘要生成中

OrionProtocol遭遇重入攻击事件分析

2023年2月2日15:40:20 UTC,以太坊和币安智能链上的OrionProtocol因合约漏洞遭受重入攻击。攻击者在以太坊链上获利2,844,766 USDT,在币安智能链上获利191,606 BUSD,总损失约290万美元。

攻击过程分析

攻击者首先部署了一个自定义Token合约,并进行了必要的准备工作。随后,攻击者通过某DEX的swap功能借入资金,调用OrionProtocol的ExchangeWithAtomic.swapThroughOrionPool方法进行代币兑换。兑换路径包含攻击者创建的Token合约地址。

在兑换过程中,攻击者利用自定义Token合约的回调功能,重复调用ExchangeWithAtomic.depositAsset方法,导致存款金额不断累加。最终,攻击者通过提款操作完成获利。

OrionProtocol 重入攻击分析附PoC

资金流向

攻击者的初始资金来自某交易平台的热钱包。攻击获利的1,651 ETH中,657.5 ETH仍留在攻击者钱包地址,其余部分已通过混币服务转移。

OrionProtocol 重入攻击分析附PoC

漏洞分析

核心问题出在ExchangeWithAtomic合约的doSwapThroughOrionPool和_doSwapTokens函数。这些函数在执行代币转账后更新curBalance变量,违反了"检查-生效-交互"(Checks-Effects-Interactions)模式。攻击者通过在自定义Token的transfer函数中添加回调逻辑,导致curBalance错误更新,从而实现重入攻击。

OrionProtocol 重入攻击分析附PoC

OrionProtocol 重入攻击分析附PoC

OrionProtocol 重入攻击分析附PoC

OrionProtocol 重入攻击分析附PoC

攻击复现

研究人员提供了部分POC代码,演示了如何利用该漏洞进行攻击。测试结果显示,攻击者成功获取了额外的USDT。

OrionProtocol 重入攻击分析附PoC

OrionProtocol 重入攻击分析附PoC

OrionProtocol 重入攻击分析附PoC

OrionProtocol 重入攻击分析附PoC

OrionProtocol 重入攻击分析附PoC

安全建议

  1. 项目方在实现代币兑换功能时,需考虑各种Token类型和兑换路径可能带来的安全风险。

  2. 严格遵循"检查-生效-交互"的编码规范,确保状态变量的更新在外部调用之前完成。

  3. 实施重入锁等安全机制,防止重入攻击。

  4. 定期进行代码审计和安全测试,及时发现并修复潜在漏洞。

  5. 考虑引入限额机制,控制单次交易的最大金额,降低潜在损失。

此次事件再次提醒我们,在智能合约开发中必须时刻保持警惕,重视安全性。只有不断完善安全措施,才能为Web3生态系统的健康发展提供有力保障。

TOKEN-1.48%
ETH-0.04%
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 7
  • 转发
  • 分享
评论
0/400
梯子上的工具人vip
· 23小时前
合约安全太重要了
回复0
绿蜡烛收集家vip
· 08-09 21:54
又一头韭菜清零
回复0
LowCapGemHuntervip
· 08-09 16:52
项目方太马虎了
回复0
末曾在场vip
· 08-07 03:18
又一个无语的漏洞
回复0
提案投票侦探vip
· 08-07 03:17
合约漏洞害人啊
回复0
GateUser-a606bf0cvip
· 08-07 03:14
合约巨坑啊
回复0
GateUser-c802f0e8vip
· 08-07 03:13
资产又溜走了
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)