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

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

2025-07-10
GMX 因可重入漏洞遭黑客攻击,损失超 4000 万美元。攻击者利用杠杆功能操纵资产管理总额(AUM),通过虚高的未实现亏损获取超额赎回。问题源于关键函数对调用者身份验证不足及赎回逻辑对 AUM 的信任过高,暴露了系统在杠杆与安全设计上的缺陷。
损失超4000万美元,GMX黑客事件原理分析

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

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

在 GMX 中,GLP 是流动性提供者代币,代表对金库资产(如 USDC、ETH、WBTC)的份额。当用户调用unstakeAndRedeemGlp时,系统使用以下公式计算应返还的资产数量:

redeem_amount = (user_GLP / total_GLP_supply) * AUM

其中 AUM(管理资产总额)的计算方式为:

AUM = 所有 token 池的总价值 + 全局空头未实现亏损 - 全局空头未实现盈利 - 已预留金额 - 预设扣减(aumDeduction)

该机制保证了 GLP 持有者按比例获得金库的实际资产份额。

当enableLeverage开启后,用户可以开设杠杆仓位(多头或空头)。攻击者在赎回 GLP 前,开设了大额的 WBTC 空头头寸。

由于空头一开仓便增加了全局空头规模,价格尚未变动的情况下系统默认该空头是亏损的,而这部分未实现亏损会被计为金库的“资产”,导致 AUM 人为上升。尽管金库并未实际获得额外价值,但赎回计算会基于这个虚高的 AUM,从而使攻击者获得了远超其应得的资产。

https://app.blocksec.com/explorer/tx/arbitrum/0x03182d3f0956a91c4e4c8f225bbc7975f9434fab042228c7acdc5ec9a32626ef?line=93

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

此次攻击暴露了 GMX 在杠杆机制与可重入保护设计上的严重缺陷。核心问题在于资产赎回逻辑对 AUM 的信任过高,未对其组成部分(如未实现亏损)进行足够审慎的安全校验。同时,关键函数对调用者身份的假设(EOA vs 合约)也缺乏强制性验证。该事件再次提醒开发者,在涉及资金敏感操作时,必须确保系统状态不可被操纵,尤其是在引入复杂金融逻辑(如杠杆、衍生品)时,更需严防重入与状态污染带来的系统性风险。

Live Chat

Customer Support Team

Ngayon lang

Minamahal na LBank User

Ang aming online na customer service system ay kasalukuyang nakakaranas ng mga isyu sa koneksyon. Aktibo kaming nagtatrabaho upang malutas ang problema, ngunit sa ngayon ay hindi kami makapagbibigay ng eksaktong timeline sa pagbawi. Taos-puso kaming humihingi ng paumanhin para sa anumang abala na maaaring idulot nito.

Kung kailangan mo ng tulong, mangyaring makipag-ugnayan sa amin sa pamamagitan ng email at tutugon kami sa lalong madaling panahon.

Salamat sa iyong pag-unawa at pasensya.

LBank Customer Support Team