Если есть что-то, что мы знаем, так это то, что ни один DeFi протокол или платформа не являются на 100% безопасными. 9 июля биржа @GMX_IO V1 была взломана на сумму 42 миллиона долларов. Вот наш анализ ниже от ведущего партнера по безопасности @Blackthornxyz @panprog (включая важный урок для разработки смарт-контрактов) 👇🔎
Корень эксплуатации заключался в уязвимости повторного входа в смарт-контрактах GMX, в частности в PositionManager.executeDecreaseOrder.
Атака ⚔️: Из OrderBook.executeDecreaseOrder прибыль (в ETH) была отправлена непосредственно пользователю. Это вызвало функцию receive() контракта-получателя до вызова timelock.disableLeverage().
Эта функция предназначена для предотвращения прямых вызовов Vault, отключая кредитное плечо, но из-за задержки её вызова злоумышленник смог обойти её.
В этом контексте повторного входа злоумышленник напрямую вызвал Vault, чтобы манипулировать короткими позициями. Критическая строка в PositionManager, отвечающая за обновление ShortsTracker.globalShortAveragePrices, была пропущена.
В результате злоумышленник мог искусственно завысить Vault.globalShortSizes, не обновляя среднюю цену шорта, что привело к неправильным расчетам AUM и завышению цены GLP.
Кража средств на сумму $42M💰: Злоумышленник сначала купил GLP по низкой цене, затем накачал его с помощью повторных входов, а затем продал GLP обратно в Хранилище по завышенной цене. Это опустошило почти все токены, хранящиеся в Хранилище. Общая сумма: $42M в ETH, BTC, USDC и других.
Последствия? 1) GMX приостановил все торговые операции, создание и выкуп GLP на Arbitrum и Avalanche. 2) GMX V2 и другие компоненты протокола не пострадали. 3) Нападавшему предложили вознаграждение в размере 10% (примерно 4,2 миллиона долларов), если средства будут возвращены в течение 48 часов.
На момент написания этого поста хакер начал возвращать средства команде GMX после переговоров о выплате 🙌. В качестве партнеров по безопасности с GMX, начиная с их V2, мы помогали в этой ситуации и рады это слышать. Мы с нетерпением ждем продолжения работы с GMX в будущем.
Уроки 🎓: ✅ Убедитесь, что повторный вход невозможен, даже если это выглядит безобидно - Изначально GMX v1 позволял пользователям напрямую взаимодействовать с Хранилищем... Таким образом, возможность взаимодействовать с Хранилищем напрямую не казалась опасной для многих.
✅ Убедитесь, что есть проверки на разумность для быстрого изменения значения, такие как цены токенов или акций: отмените выполнение, если за короткий промежуток времени цена любого актива (например, GLP в данном случае) изменяется более чем на определенный процент.
✅ Убедитесь, что существует строгий мониторинг вне цепи для любых подозрительных паттернов, возможно, автоматически приостанавливающий торговлю в крайних ситуациях. Например, если цена GLP находится за пределами заранее определенного диапазона в любой момент времени, немедленно приостановите операции для расследования.
Посмотрите наш блог для полного отчета 👇
Показать оригинал
4,96 тыс.
39
Содержание этой страницы предоставляется третьими сторонами. OKX не является автором цитируемых статей и не имеет на них авторских прав, если не указано иное. Материалы предоставляются исключительно в информационных целях и не отражают мнения OKX. Материалы не являются инвестиционным советом и призывом к покупке или продаже цифровых активов. Раздел использует ИИ для создания обзоров и кратких содержаний предоставленных материалов. Обратите внимание, что информация, сгенерированная ИИ, может быть неточной и непоследовательной. Для получения полной информации изучите соответствующую оригинальную статью. OKX не несет ответственности за материалы, содержащиеся на сторонних сайтах. Цифровые активы, в том числе стейблкоины и NFT, подвержены высокому риску, а их стоимость может сильно колебаться. Перед торговлей и покупкой цифровых активов оцените ваше финансовое состояние и принимайте только взвешенные решения.