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)