🎉 Gate xStocks 交易开启啦,现货、合约、Alpha齐上线!
📝 在Gate广场发帖,晒出你的交易体验或精彩截图,瓜分$1,000大奖池!
🎁 广场优质创作者5名,每人独享$100合约体验券!
🎉 帖文同步分享到X(推特),浏览量前十再得$50奖励!
参与方式:
1️⃣ 关注 @Gate广场_Official
2️⃣ 带 #Gate xStocks 交易体验# ,原创发帖(不少于20字,仅用活动标签)
3️⃣ 若分享到推特,请将链接提交表单:https://www.gate.com/questionnaire/6854
注:表单可多次提交,发布更多帖文可提升获奖机会!
📅 7月3日16:00—7月9日24:00(UTC+8)
详情:https://www.gate.com/announcements/article/45926
每一条体验,都有机会赢取大奖!快在Gate广场show出你的操作吧!
OrionProtocol遭受290万美元重入攻击 细析攻击过程与防范建议
OrionProtocol遭遇重入攻击事件分析
2023年2月2日,OrionProtocol在以太坊和币安智能链上遭遇重入攻击,导致约290万美元的损失。攻击者利用合约漏洞,在以太坊链上窃取了2,844,766 USDT,在币安智能链上窃取了191,606 BUSD。
攻击过程
攻击者首先创建了一个自定义Token合约,并进行了相关的转移和授权操作。随后,攻击者通过某DEX的swap方法借款,并调用ExchangeWithAtomic.swapThroughOrionPool方法进行代币兑换。兑换路径包含了攻击者创建的Token合约地址。
在兑换过程中,由于攻击者的Token合约中存在回调机制,攻击者能够通过Token.Transfer继续回调ExchangeWithAtomic.depositAsset方法,从而实现重入攻击。这导致存款金额被重复累加,最终攻击者通过取款操作完成了获利。
资金流向
攻击者的初始资金来自某交易平台的热钱包账户。在获利的1,651枚ETH中,657.5枚仍留在攻击者的钱包地址中,其余部分已通过混币服务进行了转移。
漏洞分析
漏洞的核心问题出现在doSwapThroughOrionPool函数中。该函数调用了_doSwapTokens函数,而后者在转账操作后更新curBalance变量。攻击者利用自定义Token的transfer函数中添加的回调功能,在curBalance更新前再次调用depositAsset函数,导致curBalance错误更新。最终,攻击者在偿还闪电贷后,通过withdraw函数提取了额外的资金。
防范建议
为防止类似攻击,建议项目方在设计合约时注意以下几点:
通过采取这些措施,项目可以显著提高合约的安全性和稳定性,最大限度地降低遭受攻击的风险。