近日,去中心化金融协议GMX遭遇了一次严重的安全攻击事件。攻击者利用项目合约中的一个可重入漏洞,成功获利约4200万美元。Beosin安全团队对此次事件进行了详细的漏洞分析和被盗资金追踪,并将相关结果分享如下。
据分析,攻击者首先利用了OrderBook合约中executeDecreaseOrder函数的退还保证金机制,通过发起重入攻击绕过了Timelock合约中的杠杆开关:
随后,攻击者通过闪电贷借入USDC进行质押以铸造GLP,同时以USDC作为保证金增加BTC的空头仓位。这一操作导致GLPmanager合约的资产管理规模(AUM)值虚高,而该值的计算直接影响了GLP的价格。
最后,攻击者以异常价格赎回GLP并将其兑换为其他代币,从而完成获利。
通过对整个攻击流程的复盘,可以总结出以下漏洞利用原因:
尽管GMX此前经历了多次安全审计,但这个可重入漏洞却未能被发现。如果在开发过程中对赎回逻辑进行更严格的检查,并考虑到可能存在的重入风险,或许能够避免此类安全事件的发生。
根据Beosin Trace的资金追踪结果显示,攻击者地址0x7d3bd50336f64b7a473c51f54e7f0bd6771cc355共获利约4200万美元。随后,攻击者通过多个DeFi协议将稳定币和山寨币兑换为ETH和USDC,并通过跨链协议将被盗资产转移至Ethereum网络。
截至目前,被盗资产中价值约3200万美元的ETH分别存放在以下四个以太坊网络地址:
此外,约1000万美元的资产被存放在Arbitrum网络的地址0xdf3340a436c27655ba62f8281565c9925c3a5221中。Beosin Trace已将黑客的相关地址加入黑地址库,并将持续追踪后续动向。
据Beosin Trace分析,所有被盗资金目前仍分散存放在攻击者的多个地址中。
本次攻击的核心在于GMX合约存在重入漏洞,攻击者通过虚假增加的AUM值赎回大量资产获利。对于像GMX这样复杂的DeFi协议,必须通过多方面、多层次的安全审计,对合约代码进行全面测试和审查。
此前,Beosin安全团队已完成多个知名DeFi协议(如Surf Protocol、SyncSwap、LeverFi、Owlto Finance)的安全审计,专注于发现合约逻辑缺陷和可能被忽略的极端情况,确保协议经过全方位的检测。未来,随着DeFi生态的不断发展,安全问题将成为行业关注的重中之重。