9 lipca 2025 roku, o godzinie 12:30 UTC, protokół GMX V1 wdrożony na sieci Arbitrum padł ofiarą exploita, w wyniku którego skradziono aktywa o wartości około 40 milionów dolarów. Atak, choć bazujący na znanym wektorze re-entrancy, wykorzystał subtelną lukę w architekturze kontraktów V1, omijając standardowe zabezpieczenia. Poniżej przedstawiamy techniczną analizę incydentu, reakcję zespołu oraz implikacje dla ekosystemu.
Transakcja exploita: 0x03182d3f0956a91c4e4c8f225bbc7975f9434fab042228c7acdc5ec9a32626ef
Wektor ataku i mechanizm exploita
Analiza przeprowadzona przez deweloperów, audytorów i badaczy bezpieczeństwa wskazała, że przyczyną był atak typu re-entrancy. Punktem wejścia była funkcja executeOrder w kontrakcie OrderBook.sol
Mechanizm ataku przebiegał następująco:
- Ominięcie logiki biznesowej: Atakujący, poprzez re-entrancy, wywołał increasePosition bezpośrednio na kontrakcie Vault, całkowicie omijając PositionRouter i PositionManager oraz mechanizmy obliczania średniej ceny.
- Manipulacja ceny: Cena tokena GLP jest zależna od niezrealizowanego zysku/straty (PnL) otwartych pozycji, który z kolei zależy od average short price. Omijając jej aktualizację, atakujący był w stanie otworzyć pozycję, manipulując average short price dla BTC i drastycznie ją zaniżając – z początkowej wartości $109 505,77 do zaledwie $1 913,70.
- Wykorzystanie Flash Loan: Atakujący zaciągnął pożyczkę błyskawiczną w celu maksymalizacji skali ataku.
- Realizacja exploita:
- Zakupił GLP po uczciwej, rynkowej cenie ($1.45).
- Otworzył ogromną pozycję short o wartości $15 385 676.
- Z powodu zmanipulowanej średniej ceny short, protokół błędnie obliczył gigantyczne, fikcyjne straty dla wszystkich pozycji short. Przy cenie oracle BTC wynoszącej $108 757, strata została obliczona jako: 15,385,676 * (1913.70 – 108,757.787) / 1913.70 = -859,000,107.173.
- Ta ogromna „strata” dla shortów jest zyskiem dla posiadaczy GLP, co sztucznie napompowało cenę tokena GLP do ponad $27.
- W ostatnim kroku, atakujący sprzedał swoje tokeny GLP po tej zawyżonej cenie, realizując ogromny zysk.
Reakcja zespołu i natychmiastowe działania
Zespół GMX, po otrzymaniu powiadomienia od firmy Hexagate, podjął natychmiastowe kroki:
- Zatrzymanie handlu: Handel na GMX V1 w sieci Avalanche został wstrzymany, co zapobiegło replikacji ataku na tej sieci.
- Koordynacja: Nawiązano kontakt z zespołem Arbitrum, giełdami, operatorami mostów oraz emitentami stablecoinów (Circle, Tether, Frax) w celu śledzenia i zamrożenia skradzionych funduszy. Do chwili obecnej, atakującemu udało się przenieść na Ethereum aktywa o wartości ok. $9.6 mln.
- Komunikacja z atakującym: Wysłano wiadomość on-chain, oferując 10% nagrody w ramach programu „white hat” za zwrot pozostałych 90% środków.
- Audyt GMX V2: Przeprowadzono natychmiastową analizę GMX V2 pod kątem podobnej podatności. Stwierdzono, że V2 jest bezpieczne. Kluczowa różnica architektoniczna polega na tym, że w V2 obliczanie short average price odbywa się w tym samym kontrakcie, w którym realizowane jest zlecenie. Separacja kontraktów w V1 wynikała z faktu, że kontrakt Vault nie był aktualizowalny. W V2 kontrakty mogą być aktualizowane za pośrednictwem mechanizmu Timelock.
Kolejne kroki i plan naprawczy
W celu zabezpieczenia pozostałych środków i sprawiedliwej dystrybucji, zespół GMX wdraża następujące działania:
- Zablokowanie mintingu i wykupu GLP na Arbitrum: Transakcja została zasygnalizowana i zostanie wykonana po upływie 24-godzinnego opóźnienia Timelock.
- Częściowe zablokowanie GLP na Avalanche: Minting zostanie wyłączony, ale możliwość wykupu GLP pozostanie aktywna. Użytkownikom zaleca się wykupienie GLP, jeśli nie jest ono używane do vestingu esGMX.
- Umożliwienie zamykania pozycji: Po wyłączeniu wykupu na Arbitrum, użytkownicy będą mogli zamknąć swoje otwarte pozycje na V1 na obu sieciach. Otwieranie nowych pozycji i realizacja istniejących zleceń zostaną permanentnie wyłączone.
- Fundusz rekompensat: Pozostałe w puli GLP na Arbitrum środki (ok. $3.6 mln) oraz zebrane opłaty (ok. $500k) zostaną przeznaczone na pulę rekompensat dla poszkodowanych posiadaczy GLP.
- Dalsze działania: Po wykonaniu powyższych kroków, w ramach GMX DAO zostanie zainicjowana dyskusja na temat dodatkowych środków rekompensaty.
Podsumowanie
Exploit na GMX V1 jest podręcznikowym przykładem tego, jak nawet dobrze znane wektory ataków, takie jak re-entrancy, mogą znaleźć nowe zastosowanie w złożonych architekturach DeFi. Incydent ten podkreśla fundamentalne znaczenie holistycznego podejścia do bezpieczeństwa, w którym interakcje między kontraktami są analizowane z taką samą starannością jak i logika każdego z nich. Architektura GMX V2, z jej modularnością, dowodzi, że ewolucja protokołów musi iść w parze z ewolucją myślenia o bezpieczeństwie.