近日,去中心化金融协议GMX遭遇严重安全事件,导致超过4000万美元资产被恶意提取。经多方分析确认,攻击根源在于executeDecreaseOrder函数的参数调用异常:本应传入外部账户(EOA)的首个参数,却被替换为智能合约地址,从而触发重入攻击漏洞。
GLP赎回机制解析(正常情况)
在GMX协议中,GLP作为流动性提供者代币,代表用户对金库资产(如USDC、ETH、WBTC)份额的持有权益。当用户调用unstakeAndRedeemGlp时,系统依据以下公式计算返还金额:
赎回金额 = (user_GLP / total_GLP_supply) × 资产管理规模(AUM)
其中,资产管理规模(AUM)由以下要素构成:
AUM = token_pool_value总和 + 全局空头未实现亏损 - 全局空头未实现收益 - 预留金额 - 配置扣除项(aumDeduction)
该机制确保每位GLP持有者按比例获取金库实际价值对应的资产份额。
杠杆启用时的漏洞原理
当enableLeverage功能开启后,用户可建立多头或空头杠杆头寸。本次攻击中,攻击者在赎回前迅速建立大量WBTC空头仓位。由于系统尚未发生价格变动,空头头寸默认处于未实现亏损状态,这部分亏损被计入AUM,形成虚拟资产增值。
尽管无真实资金注入,但虚增的AUM使系统误判金库价值,导致后续赎回时返还资产远超其实际持仓价值,从而完成套利。
攻击流程详解
N6q比特币实时价格与加密货币新闻 - 比特之家 | 7x24小时行情与资讯
由于executeDecreaseOrder函数的第一个参数是智能合约而非外部账户(EOA),攻击者可在回调阶段执行任意逻辑,操控内部状态并实现利润最大化。若该参数为不支持ERC-7702执行方式的外部账户,则此类重入攻击将无法实施。
此次事件再次凸显区块链项目在高复杂度协议设计中的安全盲区。随着比特币波动加剧与Layer2生态快速发展,市场对智能合约审计与风险控制的要求持续提升。行业专家指出,当前的市场趋势正推动更多机构关注DeFi协议的安全性评估,尤其在监管新政逐步落地背景下,合规与透明成为关键竞争壁垒。
未来,如何通过代码审查、形式化验证及第三方审计构建更稳健的协议架构,将成为影响整个应用生态发展的核心议题。