🎉【Gate 3000萬紀念】曬出我的Gate時刻,解鎖限量好禮!
Gate用戶突破3000萬!這不僅是數字,更是我們共同的故事。
還記得第一次開通帳號的激動,搶購成功的喜悅,或陪伴你的Gate週邊嗎?
📸 參與 #我的Gate时刻# ,在Gate廣場曬出你的故事,一起見證下一個3000萬!
✅ 參與方式:
1️⃣ 帶話題 #我的Gate时刻# ,發布包含Gate元素的照片或視頻
2️⃣ 搭配你的Gate故事、祝福或感言更佳
3️⃣ 分享至Twitter(X)可參與瀏覽量前10額外獎勵
推特回鏈請填表單:https://www.gate.com/questionnaire/6872
🎁 獨家獎勵:
🏆 創意大獎(3名):Gate × F1紅牛聯名賽車模型一輛
👕 共創紀念獎(10名): 國際米蘭同款球員衛衣
🥇 參與獎(50名):Gate 品牌抱枕
📣 分享獎(10名):Twitter前10瀏覽量,送Gate × 國米小夜燈!
*海外用戶紅牛聯名賽車折合爲 $200 合約體驗券,國米同款球衣折合爲 $50 合約體驗券,國米小夜燈折合爲 $30 合約體驗券,品牌抱枕折合爲 $20 合約體驗券發放
🧠 創意提示:不限元素內容風格,曬圖帶有如Gate logo、Gate色彩、週邊產品、GT圖案、活動紀念品、活動現場圖等均可參與!
活動截止於7月25日 24:00 UTC+8
3
BlockSec:GMX 攻擊原理分析
撰文:BlockSec
GMX 遭遇黑客攻擊,損失超過 4000 萬美元。攻擊者利用了一個可重入漏洞,並在合約啓用槓杆功能的情況下開空頭頭寸,實施了攻擊。
問題的根源在於 executeDecreaseOrder 函數被錯誤使用。該函數的第一個參數本應是外部帳戶(EOA),但攻擊者傳入了一個智能合約地址。這使得攻擊者可以在贖回過程中重新進入系統,操縱內部狀態,最終贖回的資產遠超過其實際持有的 GLP 價值。
GLP 正常贖回機制
在 GMX 中,GLP 是流動性提供者代幣,代表對金庫資產(如 USDC、ETH、WBTC)的份額。當用戶調用 unstakeAndRedeemGlp 時,系統使用以下公式計算應返還的資產數量:
redeem_amount = (user_GLP / total_GLP_supply) * AUM
其中 AUM(管理資產總額)的計算方式爲:
AUM = 所有 token 池的總價值 + 全局空頭未實現虧損 - 全局空頭未實現盈利 - 已預留金額 - 預設扣減(aumDeduction)
該機制保證了 GLP 持有者按比例獲得金庫的實際資產份額。
槓杆開啓後的問題
當 enableLeverage 開啓後,用戶可以開設槓杆倉位(多頭或空頭)。攻擊者在贖回 GLP 前,開設了大額的 WBTC 空頭頭寸。
由於空頭一開倉便增加了全局空頭規模,價格尚未變動的情況下系統默認該空頭是虧損的,而這部分未實現虧損會被計爲金庫的「資產」,導致 AUM 人爲上升。盡管金庫並未實際獲得額外價值,但贖回計算會基於這個虛高的 AUM,從而使攻擊者獲得了遠超其應得的資產。
攻擊流程
攻擊交易
寫在結尾
此次攻擊暴露了 GMX 在槓杆機制與可重入保護設計上的嚴重缺陷。核心問題在於資產贖回邏輯對 AUM 的信任過高,未對其組成部分(如未實現虧損)進行足夠審慎的安全校驗。同時,關鍵函數對調用者身分的假設(EOA vs 合約)也缺乏強制性驗證。該事件再次提醒開發者,在涉及資金敏感操作時,必須確保系統狀態不可被操縱,尤其是在引入復雜金融邏輯(如槓杆、衍生品)時,更需嚴防重入與狀態污染帶來的系統性風險。