Jarvis Network подвергся атаке повторного входа через Срочные займы, убыток составил 66 тысяч MATIC.

robot
Генерация тезисов в процессе

Анализ атаки повторного входа на Jarvis Network с использованием Срочных займов

15 января 2023 года проект Jarvis_Network подвергся серьезной атаке, в результате которой было потеряно 663,101 MATIC. Эта атака использовала комбинацию срочных займов и повторных атак, что выявило серьезные уязвимости в контракте проекта.

Анализ инцидента с повторным нападением на Срочные займы Jarvis Network

Атакующий ловко использовал уязвимость в функции remove_liquidity. Эта функция возвращает пользователю добавленные токены при удалении ликвидности. Поскольку цепочка Polygon совместима с EVM, при переводе MATIC на контракт срабатывает логика повторного входа контракта.

Анализ инцидента повторного использования срочных займов в сети Jarvis

Анализ показал, что ключевой момент атаки заключается в вызове функции getUnderlyingPrice. Эта функция возвращает значительно разные цены до и после повторного входа: до повторного входа цена составляет 1002157321772769944, а после она достигает 10091002696492234934, что почти в 10 раз больше.

Анализ инцидента повторной атаки на Срочные займы Jarvis Network

Корень проблемы заключается в неправильном времени обновления переменной self.D в контракте. Последовательность выполнения функции remove_liquidity: 1) уничтожение LP токенов пользователя; 2) отправка заложенных средств пользователю; 3) обновление self.D. Нападающий произвел повторный вход на втором шаге, используя еще не обновленное значение self.D для получения ошибочной информации о цене, что позволило ему провести выгодные операции по заимствованию.

Анализ инцидента с реентерируемой атакой Срочных займов Jarvis Network

Анализ инцидента с реинвестированием Срочных займов Jarvis Network

Хотя функция remove_liquidity использует декоратор @nonreentrant('lock') для предотвращения повторного входа, эта мера защиты не сработала, поскольку атака включает в себя межконтрактные операции.

Анализ инцидента с атакой повторного входа в Срочные займы Jarvis Network

Этот инцидент подчеркивает несколько ключевых принципов безопасности:

  1. Изменения переменных должны быть завершены до внешнего вызова, чтобы предотвратить несоответствие состояния.
  2. Механизм получения цен должен использовать многодатные источники для повышения надежности.
  3. Логика кода должна следовать модели "Проверка-Эффекты-Взаимодействия"(Checks-Effects-Interactions), то есть сначала проводить проверку условий, затем изменять переменные состояния, и только потом осуществлять внешние вызовы.

Анализ инцидента повторного взлома Срочных займов Jarvis Network

Анализ инцидента с реинвестированием Срочные займы Jarvis Network

Анализ инцидента атаки повторного входа на Срочные займы Jarvis Network

Анализ инцидента атаки повторного входа на Срочные займы Jarvis Network

Анализ события атаки повторного входа на Срочные займы Jarvis Network

Эта атака снова подтвердила, что безопасность аудита смарт-контрактов имеет решающее значение. Проектные команды должны уделять больше внимания безопасности контрактов, чтобы обеспечить тщательную и всестороннюю проверку кода, чтобы предотвратить подобные уязвимости.

Анализ инцидента повторного использования Срочных займов Jarvis Network

Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • комментарий
  • Поделиться
комментарий
0/400
Нет комментариев
  • Закрепить