Hack na GMX v1 na $40mln

gmx hacked | Hack na GMX v1 na $40mln

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:

  1. 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.
  2. 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.
  3. Wykorzystanie Flash Loan: Atakujący zaciągnął pożyczkę błyskawiczną w celu maksymalizacji skali ataku.
  4. 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.
https://twitter.com/GMX_IO/status/1943336664102756471

Kolejne kroki i plan naprawczy

W celu zabezpieczenia pozostałych środków i sprawiedliwej dystrybucji, zespół GMX wdraża następujące działania:

  1. Zablokowanie mintingu i wykupu GLP na Arbitrum: Transakcja została zasygnalizowana i zostanie wykonana po upływie 24-godzinnego opóźnienia Timelock.
  2. 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.
  3. 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.
  4. 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.
  5. 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.