GMX遭黑客攻击 可重入漏洞致损4000万美元

robot
摘要生成中

GMX 遭受黑客入侵,造成超过 4000 万美元的损失。攻击者利用了一个可重入漏洞,并在合约启用杠杆功能的情况下建立空头头寸来实施攻击。

损失超4000万美元,GMX黑客事件原理分析

问题的核心在于 executeDecreaseOrder 函数的错误使用。该函数的第一个参数应该是外部账户(EOA),但攻击者传入了一个智能合约地址。这使得攻击者能够在赎回过程中重新进入系统,操纵内部状态,最终赎回的资产远超其实际持有的 GLP 价值。

在 GMX 中,GLP 是流动性提供者代币,代表对金库资产(如 USDC、ETH、WBTC)的份额。正常情况下,当用户赎回 GLP 时,系统会根据用户持有的 GLP 占比和当前管理资产总额(AUM)计算应返还的资产数量。AUM 的计算包括所有代币池的总价值、全局空头未实现损益、已预留金额和预设扣减等因素。

然而,当启用杠杆功能后,系统出现了漏洞。攻击者在赎回 GLP 之前,开设了大额的 WBTC 空头头寸。由于空头一开仓就增加了全局空头规模,在价格尚未变动的情况下,系统默认该空头处于亏损状态。这部分未实现亏损被错误地计入金库的"资产",导致 AUM 人为上升。尽管金库实际上并未获得额外价值,但赎回计算却基于这个虚高的 AUM,使得攻击者获得了远超其应得的资产。

损失超4000万美元,GMX黑客事件原理分析

这次攻击暴露了 GMX 在杠杆机制与可重入保护设计上的严重缺陷。核心问题在于资产赎回逻辑对 AUM 的信任过高,未对其组成部分(如未实现亏损)进行足够审慎的安全校验。同时,关键函数对调用者身份的假设(EOA vs 合约)也缺乏强制性验证。

这一事件再次提醒开发者,在涉及资金敏感操作时,必须确保系统状态不可被操纵。特别是在引入复杂金融逻辑(如杠杆、衍生品)时,更需严防重入与状态污染带来的系统性风险。开发团队应该重新审视其合约设计,加强安全措施,并考虑引入更严格的身份验证和状态检查机制,以防止类似攻击再次发生。

GMX-2.27%
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 评论
  • 分享
评论
0/400
暂无评论
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)