
Очередная хакерская атака. Киберзлоумышленники использовали уязвимость в протоколе биржи GMX V1, благодаря чему им удалось украсть из пула ликвидности активов на $40 млн.
Манипуляция была связана с расчетом короткой средней цены. Причиной эксплойта в GMX V1 стал повторный вызов функции (реентрация). Точкой входа для атаки была функция в смартконтракте OrderBook.sol. Атакующий использовал реентрацию для непосредственного вызова функции increasePosition в контракте Vault. В нормальных условиях эта функция может вызываться только из контрактов PositionRouter и PositionManager, которые обеспечивают корректный расчет средней цены шортов.
Средняя цена шортов влияет на стоимость GLPМультиактивный пул ликвидности, который служит источником обеспечения торговли на бирже GMX. Пользователи, которые предоставляют ликвидность в пул GLP, получают вознаграждение в виде комиссий за торговлю и токены GMX. через вычисление прибыли/убытка (PnL). Воспользовавшись уязвимостью, злоумышленник смог манипулировать ценой шортов на биткоин, снизив ее с $109,505 до $1,913.
Далее он получил флеш-займ, чтобы приобрести токены ликвидности платформы GLP по реальной цене $1.45. Затем хакер открыл позицию на $15,385,676. Благодаря измененным расчетам шорт-убытков, система вычислила потери как $859 млн, что искусственно завысило стоимость GLP до более $27. После этого киберпреступник выкупил GLP по этой завышенной цене (зашортил) и таким образом наварил $40 млн, после чего вывел средства на неизвестный кошелек.
После атаки торговлю на Avalanche. Для помощи в отслеживании и блокировании похищенных средств привлечены: Arbitrum, биржи, мосты, а также эмитенты стейблкоинов — Circle, Tether и Frax.
Проведена проверка GMX V2 — подобной уязвимости там нет, поскольку все ключевые вычисления происходят в одном контракте. В GMX V1 контракты были разделены. В качестве меры предосторожности, временно были снижены лимиты на эмиссию ликвидности GMX V2 в сетях Arbitrum и Avalanche. После выявления причин эксплойта и подтверждения безопасности GMX V2 ограничения были сняты.
Сейчас в GLP-пуле заблокировано около $3.6 млн токенов из-за открытых позиций. Ориентировочно $500 тыс. комиссий (после вычета 30% у GMX) будет направлено в DAO для компенсаций. Минтинг и выкуп GLP на Arbitrum будет отключен. Минтинг GLP на Avalanche также будет отключен, но выкуп GLP там останется активным. После этого будет разрешено закрытие позиций V1 на обеих сетях, но открытие новых позиций — запрещено. Активные ордера на V1 пользователям следует отменить вручную.
Биржа GMX предложила хакерам $5 млн вознаграждения за возврат средств.
Источник: GMX