免责声明:金色财经所有资讯仅代表作者个人观点,不构成任何投资理财建议。请确保访问网址为(jinse.cn) 举报

    4000万美元GMX漏洞攻击详解

    作者: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赎回时返还了超出合理范围的资产

    下图为攻击流程详解

    TSSRZDKQermJFLEqY6g3BmEBX1bxxuOsc877ET2b.png

    由于executeDecreaseOrder的首个参数是智能合约(而非外部账户EOA),攻击者能在回调期间执行任意逻辑,从而操纵内部状态并套取利润。若该参数是不支持ERC-7702式执行的外部账户(EOA),这种基于重入的攻击便无法实现。

    这对我们来说绝对是个安全警示!

    jinse.cn 0
    好文章,需要你的鼓励
    jinse.cn 0
    好文章,需要你的鼓励
    参与评论
    0/140
    提交评论
    文章作者: / 责任编辑:

    声明:本文系金色财经原创稿件,版权属金色财经所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:金色财经",违者将依法追究责任。

    提示:投资有风险,入市须谨慎。本资讯不作为投资理财建议。

    金色财经 > 金色财经 > 4000万美元GMX漏洞攻击详解
    • 寻求报道
    • 金色财经中国版App下载
      金色财经APP
      iOS & Android
    • 加入社群
      Telegram
    • 意见反馈
    • 返回顶部
    • 返回底部