深度解析:GMX因合约漏洞遭黑客攻击,损失超4000万美元
2025-07-10 16:15 loading...
作者:BlockSec;翻译:金色财经xiaozou
近日,去中心化金融协议GMX遭遇黑客攻击,造成超过4000万美元的巨额损失。经分析,攻击者利用了协议中的智能合约漏洞,在启用杠杆的情况下建立空头头寸实施攻击。
此次事件的根本原因在于executeDecreaseOrder函数的调用错误:该函数首个参数本应是外部账户(EOA),但攻击者传入的却是智能合约地址。这一操作使攻击者在赎回过程中成功操纵内部状态,最终提取的资产价值远超其GLP持仓的实际价值。
GLP赎回机制解析(正常情况)
在GMX协议中,GLP作为流动性提供者代币,代表金库资产(如USDC、ETH、WBTC)的份额。
当用户调用unstakeAndRedeemGlp时,系统通过以下公式计算应返还的资产数量:
赎回金额 = (user_GLP / total_GLP_supply) × 资产管理规模(AUM)
其中资产管理规模(AUM)由以下要素决定:
AUM = token_pool_value总和 + 全局空头未实现亏损 - 全局空头未实现收益 - 预留金额 - 配置扣除项(aumDeduction)
这种机制确保每位GLP持有者都能按比例获取金库总价值的对应份额。
杠杆启用时的漏洞原理
当enableLeverage功能开启时,用户可建立杠杆头寸(多头或空头)。本次事件中,攻击者在赎回GLP前立即建立了大量WBTC空头头寸。
当空头头寸建立时,系统会立即增加全局空头仓位规模。若此时价格尚未波动,系统会默认该空头处于亏损状态——这部分亏损被计入金库资产(即未实现亏损)。因此,尽管没有实际价值注入金库,资产管理规模(AUM)却被虚增。
这种虚增的AUM导致GLP赎回时返还了超出合理范围的资产。
攻击流程详解
由于executeDecreaseOrder的首个参数是智能合约(而非外部账户EOA),攻击者能在回调期间执行任意逻辑,从而操纵内部状态并套取利润。若该参数是不支持ERC-7702式执行的外部账户(EOA),这种基于重入的攻击便无法实现。
这次事件为整个区块链行业敲响了警钟!
相关阅读
-
Solana鲸鱼买入60,000 SOL:对SOL价格走势的深度分析名家专栏 2025-08-22 00:26
-
美国政府追回铀金融黑客攻击事件资产达3400万美元,最新扣押33.2万美元区块链资讯 2025-08-22 00:25
-
CME与Fanduel合作推出活动合约,预测市场迈向大众化比特币资讯 2025-08-21 22:15
-
美国政府从铀金融黑客攻击事件中再次扣押 33.2 万美元,追回资金总额超过 3400 万美元区块链资讯 2025-08-21 20:28
-
比特币四年周期是否已被打破?市场新动态引发深度思考比特币资讯 2025-08-20 22:14
-
永续合约双雄逐鹿:Bybit与Bitget交易哲学和金融机制有何不同?区块链资讯 2025-08-20 20:59
-
Bitget 推出全球首个 RWA 指数永续合约:支持交易 TSLA 和 NVDA比特币资讯 2025-08-20 20:16
-
如何正确评估BTC的真实收益率:超越名义收益的深度解析比特币资讯 2025-08-20 10:01
-
Coinbase上线Mantle永续合约引发市场热潮:MNT能否突破1.39美元阻力位?比特币资讯 2025-08-20 00:15
-
美国财政部考虑在 DeFi 智能合约中使用数字身份,以遏制非法金融区块链资讯 2025-08-18 08:32