4000萬美元GMX漏洞攻擊詳解

發布 2025-7-10 下午02:36

作者: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),這種基於重入的攻擊便無法實現。

這對我們來說絕對是個安全警示!

最新評論

風險聲明: 金融工具及/或加密貨幣交易涉及高風險,包括可損失部分或全部投資金額,因此未必適合所有投資者。加密貨幣價格波幅極大,並可能會受到金融、監管或政治事件等多種外部因素影響。保證金交易會增加金融風險。
交易金融工具或加密貨幣之前,你應完全瞭解與金融市場交易相關的風險和代價、細心考慮你的投資目標、經驗水平和風險取向,並在有需要時尋求專業建議。
Fusion Media 謹此提醒,本網站上含有的數據資料並非一定即時提供或準確。網站上的數據和價格並非一定由任何市場或交易所提供,而可能由市場作價者提供,因此價格未必準確,且可能與任何特定市場的實際價格有所出入。這表示價格只作參考之用,而並不適合作交易用途。 假如在本網站內交易或倚賴本網站上的資訊,導致你遭到任何損失或傷害,Fusion Media 及本網站上的任何數據提供者恕不負責。
未經 Fusion Media 及/或數據提供者事先給予明確書面許可,禁止使用、儲存、複製、展示、修改、傳輸或發佈本網站上含有的數據。所有知識產權均由提供者及/或在本網站上提供數據的交易所擁有。
Fusion Media 可能會因網站上出現的廣告,並根據你與廣告或廣告商產生的互動,而獲得廣告商提供的報酬。
本協議以英文為主要語言。英文版如與香港中文版有任何歧異,概以英文版為準。
© 2007-2026 - Fusion Media Limited保留所有權利