如果我们知道一件事,那就是没有任何 DeFi 协议或平台是 100% 安全的。 在 7 月 9 日,@GMX_IO 交易所 V1 被黑客攻击,损失达 4200 万美元。 以下是我们从 @Blackthornxyz 的首席安全合作伙伴 @panprog 那里得到的分析(包括智能合约开发的一个重要教训)👇🔎
该漏洞的根源在于GMX智能合约中的重入漏洞,特别是在PositionManager.executeDecreaseOrder中。
攻击 ⚔️: 从 OrderBook.executeDecreaseOrder,利润(以 ETH 计)直接发送给用户。这在调用 timelock.disableLeverage() 之前触发了接收合约的 receive() 函数。
该功能旨在通过禁用杠杆来防止直接调用 Vault,但由于其延迟调用,攻击者能够绕过它。
在这个重入上下文中,攻击者直接调用了 Vault 来操纵空头头寸。PositionManager 中一条关键的代码行 - 负责更新 ShortsTracker.globalShortAveragePrices - 被跳过了。
因此,攻击者可以在不更新平均空头价格的情况下,人工抬高 Vault.globalShortSizes,这导致了不正确的 AUM 计算,并抬高了 GLP 价格。
盗取4200万美元资金💰: 攻击者首先以较低的价格购买GLP,然后通过重入循环将其抬高,最后以抬高的价格将GLP卖回给保险库。这几乎耗尽了保险库中持有的所有代币。总收益:4200万美元的ETH、BTC、USDC等。
后果? 1) GMX 暂停了在 Arbitrum 和 Avalanche 上对 GLP 的所有交易、铸造和赎回。 2) GMX V2 和其他协议组件未受到影响。 3) 如果资金在 48 小时内归还,攻击者将获得 10% 的白帽赏金(约 420 万美元)。
在撰写此帖时,黑客已开始在谈判支付后将资金返还给GMX团队🙌。作为GMX V2的安全合作伙伴,我们一直在协助处理此情况,并对此感到高兴。我们期待未来继续与GMX合作。
课程 🎓: ✅ 确保没有可能的重入,即使看起来无害 - 最初,GMX v1 允许用户直接与 Vault 互动……因此,直接与 Vault 互动的能力对许多人来说似乎并不危险。
✅ 确保对快速价值变化进行合理性检查,例如代币或股票价格:如果在短时间内任何资产(如此例中的 GLP)价格变化超过某个百分比,则撤销执行。
✅ 确保对任何可疑模式进行严格的链外监控,在极端情况下可能会自动暂停交易。例如,如果GLP价格在任何时刻超出某个预定义范围,立即暂停操作以进行调查。
查看我们的博客以获取完整报告 👇
查看原文
本页面内容由第三方提供。除非另有说明,欧易不是所引用文章的作者,也不对此类材料主张任何版权。该内容仅供参考,并不代表欧易观点,不作为任何形式的认可,也不应被视为投资建议或购买或出售数字资产的招揽。在使用生成式人工智能提供摘要或其他信息的情况下,此类人工智能生成的内容可能不准确或不一致。请阅读链接文章,了解更多详情和信息。欧易不对第三方网站上的内容负责。包含稳定币、NFTs 等在内的数字资产涉及较高程度的风险,其价值可能会产生较大波动。请根据自身财务状况,仔细考虑交易或持有数字资产是否适合您。