值得信赖的区块链资讯!
GMX 被黑分析:4200 万美金瞬间蒸发
作者:九九&Kong&Lisa
编辑:Liz
背景
2025 年 7 月 9 日,据慢雾 MistEye 安全监控系统监测,知名去中心化交易平台 GMX (@GMX_IO) 遭攻击,损失价值超 4200 万美元的资产。慢雾安全团队第一时间对该事件展开分析,并将结果整理如下:
(https://x.com/SlowMist_Team/status/1942949653231841352)
相关信息
攻击者地址:
https://arbiscan.io/address/0xdf3340a436c27655ba62f8281565c9925c3a5221
攻击合约地址:
https://arbiscan.io/address/0x7d3bd50336f64b7a473c51f54e7f0bd6771cc355
存在漏洞的合约地址:
https://arbiscan.io/address/0x3963ffc9dff443c2a94f21b129d429891e32ec18
攻击交易:
https://arbiscan.io/tx/0x03182d3f0956a91c4e4c8f225bbc7975f9434fab042228c7acdc5ec9a32626ef
根本原因
此次攻击的根本原因主要有两点:
-
一是 GMX v1 在创建空头头寸时会更新全局空头平均价格(globalShortAveragePrices) 的值,而关掉空头头寸时却不会对其进行任何更新。
-
二是 GMX v1 在处理空头头寸时会立即增加全局空头仓位规模(globalShortSizes)。
这两个因素直接影响了总资产规模(AUM) 的计算,进而导致 GLP 代币价格被操控。
攻击者利用这个设计缺陷,通过 Keeper 在执行订单时会启用 `timelock.enableLeverage` 的特性(创建大额空单的必要条件),以重入的方式成功创建大额空头头寸,操纵全局平均价格和全局空头头寸规模,在单笔交易中人为抬高 GLP 的价格,并通过赎回操作获利。
攻击前置准备
1. 攻击者首先用两笔前置交易为攻击合约先创建一个做多的仓位,之后再创建一个能让 Keeper 执行的减仓订单。
2. Keeper 收到减仓订单后会调用 PositionManager 合约的executeDecreaseOrder 函数为攻击合约执行减仓操作。其中会先调用 Timelock 合约的 enableLeverage 函数去启用 Vault 合约中的 _isLeverageEnabled 为 true,这是后续攻击流程中能直接创建空头仓位的必要条件。
之后会调用 OrderBook 合约的 executeDecreaseOrder 函数执行减仓的具体逻辑,在对攻击合约的仓位进行更新之后,会将减仓得到的抵押品代币转移给攻击合约。而因为抵押品代币是 WETH,所以会将 WETH 换回 ETH 后再转给攻击合约,这就触发了攻击合约中构造的 fallback 函数来进行后续的重入操作。
3. 攻击合约的 fallback 函数会先将 3001 枚 USDC 转移给 Vault 合约,并调用 Vault 合约的 increasePosition 函数开 30 倍的 WBTC 空单。之后再对该仓位创建对应的平仓订单,以供 Keeper 后续能继续调用。
在increasePosition 函数中,会先调用其内部的 _validate 函数检查 isLeverageEnabled 是否为 true,而只有在 Keeper 执行订单的时候才会先启用 _isLeverageEnabled,使得这一步中的检查通过。直接调用该函数的话是无法成功开仓的,这也就说明了攻击者创建减仓订单的目的是让 Keeper 执行减仓订单的同时能通过 fallback 函数重入去调用 increasePosition 函数,直接创建空头仓位。
此外,由于通过 increasePosition 函数进行开仓时会更新 globalShortAveragePrices 的值,而通过 decreasePosition 函数减仓或平仓时并不会对 globalShortAveragePrices 的值进行更新。所以攻击者可以循环不断地用 3000 枚 USDC 不断创建做空订单后立即再让 Keeper 平空,以此操控 globalShortAveragePrices 的值,最终使得该值比正常 WBTC 的价格低了大概 57 倍。(需要注意这里所有对 WBTC 做空和平空的操作都是在 Keeper 执行减仓订单时重入进去完成的)
第一次通过重入做空 WBTC 时的全局空头平均价格(GlobalShortAveragePrice) 为 108757787000274036210359376021024492,发起正式攻击交易前最后一次做空 WBTC 时的全局空头平均价格(GlobalShortAveragePrice) 为 1913705482286167437447414747675542,前后相差约为 57 倍。
正式攻击步骤
1. Keeper 收到最后一次重入时创建的减仓订单后会调用 OrderBook 合约的 executeDecreaseOrder 函数执行减仓,将减仓获得 ETH 转移给攻击合约时会触发其 fallback 函数。
2. 其中会先从 Uniswap 闪电贷借出 753.8 万枚 USDC,接着调用 RewardRouterV2 合约的 mintAndStakeGlp 函数,用其中 600 万枚 USDC 铸造 412.9 万枚 GLP 代币并进行质押。
铸造时获取的 AumInUsdg 值为 46942248263037264990037614。
WBTC 的全局空头仓位规模(globalShortSizes) 和全局空头平均价格(getGlobalShortAveragePrice) 分别为 15373061114092959107000000000000000 和 1913705482286167437447414747675542。
3. 紧跟着,攻击合约调用 Vault 合约的 increasePosition 函数,向 Vault 中转入 USDC 并创建价值 1538.5 万的大额 WBTC 空头仓位。
在increasePosition 函数的最后会用这部分新开仓的大额空头头寸去更新全局空头仓位规模,使得全局空头仓位规模(globalShortSizes) 被立即增大。
4. 接着攻击合约在完成大额空头头寸建仓后立即调用了 unstakeAndRedeemGlp 函数进行 GLP 代币的解除质押并赎回。
然而这里可以看到只赎回了 38.6 万枚的 GLP 却燃烧掉了 973.1 万枚的 USDG 代币,并且最后转移了 88 枚 WBTC 给攻击合约,这是为什么呢?我们继续跟进到 GlpManager 合约的 _removeLiquidity 函数中:
当用户执行赎回 GLP 代币的操作时,该函数会使用以下公式计算应燃烧的 USDG 代币数量:usdgAmount = _glpAmount * aumInUsdg / glpSupply。之后会将这些 USDG 转移到 Vault 中,卖出换回用户需要赎回的资产(WBTC)。而其中 aum 的计算方式大致为:
aum = ((totalPoolAmounts – totalReservedAmounts) * price) + totalGuaranteedUsd + GlobalShortLoss(全局空头仓位亏损) – GlobalShortProfits(全局空头仓位盈利) – aumDeduction
而由于在上一步创建了大额的空头头寸,使得全局空头仓位规模被增大,且由于全局平均价格(getGlobalShortAveragePrice) 在之前被操控得远低于正常价格,所以这部分空头头寸是亏损的(即 hasProfit 为 false),从而让 GlobalShortLoss(全局空头仓位亏损)增加了好几百倍,导致 AUM 被操控放大(aum + delta)。最终攻击者利用被操控后的 AUM 赎回了超出正常数量的资产。
6. 最后,攻击者继续利用被操控后的 AUM 不断调用 unstakeAndRedeemGlp 函数来赎回 Vault 中的其他资产来获利。
MistTrack 分析
据链上反洗钱与追踪工具 MistTrack 分析,初始攻击者地址(0xdf3340a436c27655ba62f8281565c9925c3a5221) 获利超 4200 万美元,包括:
资金转移情况大致梳理如下:
1. 初始攻击者地址在 Arbitrum 上获利后,迅速将 WETH、WBTC、DAI 等资产转移至中转地址(0x99cdeb84064c2bc63de0cea7c6978e272d0f2dae),并使用 CoW Swap、Across Protocol、Stargate Finance、Mayan Finance 等多个 DEX 和跨链桥将资产进行兑换、跨链转移到 Ethereum。
2. 攻击者主要通过 CoW Swap 将 USDC 兑换为 DAI,再换为 ETH。
3. 大量资产最终都被兑换成 ETH,目前共计 11,700 枚 ETH 流入地址(0x6acc60b11217a1fd0e68b0ecaee7122d34a784c1)。
值得注意的是,攻击者的初始资金来自 Tornado Cash 于 7 月 7 日转入的 2 ETH,然后再通过 Mayan Finance 将 2 ETH 跨链到 Arbitrum,为整个攻击流程提供初始 Gas。
截至目前,余额情况如下:
-
Arbitrum 地址 0xdf3340a436c27655ba62f8281565c9925c3a5221,余额 10,494,796 Legacy Frax Dollar 和 1.07 ETH;
-
Ethereum 地址 0xa33fcbe3b84fb8393690d1e994b6a6adc256d8a3,余额 3000 ETH;
-
Ethereum 地址 0xe9ad5a0f2697a3cf75ffa7328bda93dbaef7f7e7,余额 3000 ETH;
-
Ethereum 地址 0x69c965e164fa60e37a851aa5cd82b13ae39c1d95,余额 3000 ETH;
-
Ethereum 地址 0x639cd2fc24ec06be64aaf94eb89392bea98a6605,余额 2700 ETH。
我们将持续对资金进行监控。
总结
本次攻击的核心在于攻击者利用了 Keeper 系统执行订单时会启用杠杆,以及做空时会更新全局平均价格而平空却不会更新的这两个特性,通过重入攻击创建大额空头头寸,操控了全局空头平均价格和全局空头仓位规模的值,从而直接放大了 GLP 价格来赎回获利。
慢雾安全团队建议项目方应该根据自身业务逻辑对核心函数增加重入锁的保护,并严格限制单一因素对价格的直接影响程度。此外,应当对项目的合约代码加强审计与安全测试,从而避免类似情况的发生。
比推快讯
更多 >>- Eigen Labs 开发者关系总监 Nader Dabit 离职,将加入 Cognition
- Peter Brandt:比特币将在 4.2 万美元处迎来关键支撑
- 某巨鲸沉寂 2 年后从 Binance 提取 1 万枚 ETH,价值 1927 万美元
- 美国参议员 Cynthia Lummis 呼吁银行业拥抱稳定币与数字资产
- Aave 创始人:Aave 协议过去一周清算超 4.5 亿美元抵押品
- 分析师:黄金抛售潮或引发连锁反应,部分投资者甚至抛售其他资产以弥补亏损头寸
- 数据:49 枚 WBTC 转入 Bybit,价值约 322 万美元
- Trend Research 正加速抛售 ETH 以偿还贷款,过去 10 小时已卖出 170,033 枚 ETH
- 数据:Ark Invest 增持 1780 万美元 Bullish 股票,减持 1740 万美元 Coinbase 股票
- 报告:1 月份 Web3 安全事件造成的经济损失约 4.14 亿美元
- Binance 更新 2 月储备金证明:BTC 储备率 100.07%,USDT 储备率 103.76%
- 分析:美国失业人数创 17 年来新高,为比特币多头释放积极信号
- 《富爸爸穷爸爸》作者:等待 BTC 和黄金的“新底部”并会继续增持 ETH
- Dovey Wan:香港圈子很小,没听说有哪家机构出事了
- Bitcoin Core 开发人员 Gloria Zhao 已辞去其维护者职务
- Bitfinex:比特币周跌幅创 FTX 崩盘以来新高,周线 RSI 表明市场严重超卖
- 数据:瑞典上市公司 H100 Group 增持 4.39 枚 BTC,总持仓达 1051 枚
- 分析:比特币梅耶倍数罕见跌至 0.6 附近,或为看涨信号
- Cardano 创始人:在加密领域已损失超 30 亿美元,但仍选择坚守而非退出
- 数据:Trend Research 近 24 小时向币安存入 12.7 万枚 ETH,约合 2.38 亿美元
- Michael Saylor 回应量子计算风险:至少还需 10 年才会构成威胁,Strategy 将启动一项比特币安全计划
- DFDV COO:香港非加密对冲基金或因 IBIT 杠杆期权交易爆仓引发市场下跌
- 币安 Alpha:持有 240 积分可参与第二波 Stable(STABLE)空投
- 麻吉ETH 与 HYPE 多单同时遭清算,昨日补足资金后再次缩水至不足 5 万
- 数据:过去 1 小时 Binance 净流出 3,846.44 万 USDT
- ETH 链上存在三大主要清算区间,多位巨鲸持仓或将面临清算风险
- Bitwise CEO:本轮加密市场暴跌主要受宏观环境拖累,投资者正抛售所有流动性资产
- CryptoQuant 首席执行官 Ki Young Ju:BTC-USDT 永续合约杠杆率正在降温
- F2Pool 联创王纯提及“白银星期四”警示:若 CZ 限制买入,好奇市场反应
- 金融科技公司 Ruvo 完成 460 万美元融资,1confirmation 领投
- Trend Research 本次做多已亏损 7.63 亿美元,不仅回吐上次全部利润还亏损 4.48 亿美元本金
- 分析师:比特币长期持有者正处于结构性投降边缘,或临近熊市最后一次剧烈下跌
- 币安:拥有至少 240 个 Alpha 积分的用户今日 17:00 可领取币安 Alpha 空投
- 今夜无非农,下周“双炸弹”
- 就业数据疲软未能阻挡美元企稳,市场关注非农报告
- Greeks.live:比特币和以太坊剧烈下跌趋势仍在持续,看跌期权占据绝对主导地位
- 美就业数据疲软引发美债收益率下跌至三周低点
- Binance SAFU 基金地址再次买入 3600 枚 BTC
- 数据:20 万枚 SOL 从 Bithumb 转出,价值约 1600 万美元
- 期权市场普遍认为比特币在 3 月份重回 9 万美元的概率仅为 6%
- Polymarket 上预测比特币今年跌至 5.5 万美元概率升至 74%
- Benson Sun:比特币跌幅达到罕见的-5.65σ,历史仅出现 4 次
- Trend Research 过去 6 小时卖出 4.7 万枚 ETH 以避免清算,清算区间更新为 1509 美元至 1800 美元
- 某巨鲸曾以 1.37 美元均价做多 ASTER,现浮亏近 9 倍持仓本金
- Placeholder 合伙人:加密市场或迎反弹,但血洗恐未结束
- CryptoQuant 分析师:尽管抛压持续存在,但稳定币流入交易所翻倍至 980 亿美元
- 当前主流 CEX、DEX 资金费率显示市场再度全面转向看空
- Cyber.Fund 联创 Lomashuk 关联地址向 Wintermute 转账 12,458 枚 stETH 和 2566 枚 ETH
- Strategy CEO:比特币跌至 8000 美元五至六年才可能出现偿付问题
- Meme 币 WhiteWhale 市值突破 1.2 亿美元,The White Whale 持仓盈利已达 1810 万美元
比推专栏
更多 >>- Was it finished?|0206 Asian
- 围猎以太坊多头:「巨鲸」们暴亏 70 亿美元,正被集体围观
- Challenge,risk And chances|0130 Asian
- Meta 豪赌 AI:砸钱 1350 亿美元,2026 的扎克伯格,值得相信么?
- Variables: Terrible snowstorm|0128 Asian
- 英特尔「生死线」时刻:在 ICU 门前,陈立武如何清算遗产并开启自救?
- 從1月13號到今天,提前到5100|0126Asian
- You Should work HARDER in 2026|0120 Asian
- 硅谷最聪明那群人的「终极推演」:2026,我们应该「All-In」什么?
- Notice us dollar index|0116 in us
观点
比推热门文章
- 美国参议员 Cynthia Lummis 呼吁银行业拥抱稳定币与数字资产
- Aave 创始人:Aave 协议过去一周清算超 4.5 亿美元抵押品
- 分析师:黄金抛售潮或引发连锁反应,部分投资者甚至抛售其他资产以弥补亏损头寸
- 数据:49 枚 WBTC 转入 Bybit,价值约 322 万美元
- Trend Research 正加速抛售 ETH 以偿还贷款,过去 10 小时已卖出 170,033 枚 ETH
- 数据:Ark Invest 增持 1780 万美元 Bullish 股票,减持 1740 万美元 Coinbase 股票
- 报告:1 月份 Web3 安全事件造成的经济损失约 4.14 亿美元
- Binance 更新 2 月储备金证明:BTC 储备率 100.07%,USDT 储备率 103.76%
- 分析:美国失业人数创 17 年来新高,为比特币多头释放积极信号
- 《富爸爸穷爸爸》作者:等待 BTC 和黄金的“新底部”并会继续增持 ETH
比推 APP



