Euler Finance подвергся флеш-атаке займа на 197 миллионов долларов, функция donateToReserves содержит уязвимость

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

Euler Finance подвергся флеш-атаке займа, потеряв почти 200 миллионов долларов

13 марта 2023 года проект Euler Finance подвергся серьезной флеш-атаке займа. Согласно данным мониторинга в блокчейне, злоумышленник использовал уязвимость в контракте проекта и успешно украл около 197 миллионов долларов, затронув 6 различных токенов.

Анализ уязвимости Euler Finance: как произошла флеш-атака займа, убыток составил 1.97 миллиарда долларов!

Анализ процесса атаки

Атакующий сначала получил срочные займы на сумму 30 миллионов DAI с одной из платформ кредитования, а затем развернул два ключевых контракта: один для операций с займами, другой для ликвидации.

Основные шаги атаки следующие:

  1. Заложите 20 миллионов DAI в контракт Euler Protocol, чтобы получить 19.5 миллионов eDAI.

  2. Используя функцию кредитного плеча 10x протокола Euler, взять в долг 195,6 миллиона eDAI и 200 миллионов dDAI.

  3. Используйте оставшиеся 10 миллионов DAI для частичного погашения долга и уничтожьте соответствующее количество dDAI.

  4. Снова займитесь выдачей такого же количества eDAI и dDAI.

  5. Пожертвовать 100 миллионов eDAI через функцию donateToReserves, затем вызвать функцию liquidate для ликвидации и получить 310 миллионов dDAI и 250 миллионов eDAI.

  6. В конце извлечено 38,9 миллиона DAI, возвращено 30 миллионов Срочных займов, чистая прибыль составила около 8,87 миллиона DAI.

Анализ уязвимости Euler Finance: как произошла флеш-атака займа, убытки составили 1,97 миллиарда долларов!

Анализ уязвимости Euler Finance: как произошла флеш-атака займа, убыток составил 1.97 миллиардов долларов!

Анализ уязвимости Euler Finance: как произошла флеш-атака займа, убытки составили 197 миллионов долларов!

Анализ уязвимости Euler Finance: как произошла флеш-атака займа с потерей 197 миллионов долларов!

Анализ уязвимости Euler Finance: как произошла флеш-атака займа, убытки составили 197 миллионов долларов!

Анализ уязвимости Euler Finance: как произошла флеш-атака займа, убыток составил 1.97 миллиарда долларов!

Анализ уязвимости Euler Finance: как произошла флеш-атака займа, убыток составил 197 миллионов долларов!

Анализ уязвимости Euler Finance: как произошла флеш-атака займа, убыток составил 197 миллионов долларов!

Анализ причин уязвимости

Основной уязвимостью этой атаки является отсутствие необходимых проверок ликвидности в функции donateToReserves контракта Euler Finance. В отличие от других ключевых функций, таких как функция mint, функция donateToReserves не выполняет операцию checkLiquidity, что позволяет злоумышленнику манипулировать состоянием своего аккаунта, чтобы оно соответствовало условиям ликвидации.

В нормальных условиях функция checkLiquidity вызывает модуль RiskManager, чтобы гарантировать, что количество eToken у пользователя всегда больше, чем количество dToken. Однако из-за отсутствия этого ключевого шага в функции donateToReserves злоумышленник смог обойти механизм безопасности и добиться неправомерной прибыли.

Анализ уязвимости Euler Finance: как произошла флеш-атака займа, убытки составили 1.97 миллиарда долларов!

Рекомендации по безопасности

В ответ на такие атаки проектам блокчейна следует:

  1. Провести полную безопасность аудита перед запуском контракта, чтобы гарантировать качество и безопасность кода.

  2. Особое внимание следует уделить ключевым этапам, таким как возврат средств, проверка ликвидности и ликвидация долгов в проектах, связанных с займами.

  3. Убедитесь, что все функции, которые могут повлиять на состояние активов пользователей, содержат необходимые шаги проверки безопасности.

  4. Регулярно проводить код-ревью и сканирование на уязвимости, своевременно устранять потенциальные риски.

  5. Рассмотрите возможность введения механизма мультиподписей или временной блокировки и других дополнительных мер безопасности для резервирования буферного времени на случай чрезвычайных ситуаций.

Данный инцидент еще раз подчеркивает важность безопасности смарт-контрактов. Проектные команды должны всегда ставить безопасность на первое место, через постоянные практики безопасности и технические инновации совместно строить более безопасную и надежную экосистему Web3.

Анализ уязвимости Euler Finance: как произошла флеш-атака займа, убыток составил 197 миллионов долларов!

Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 5
  • Поделиться
комментарий
0/400
liquidation_surfervip
· 07-11 22:36
Срочные займы снова попали в беду
Посмотреть ОригиналОтветить0
ZKSherlockvip
· 07-11 21:59
Аудит контрактов слишком нестрогий
Посмотреть ОригиналОтветить0
ResearchChadButBrokevip
· 07-10 21:58
Действительно сложно защититься от уязвимостей в контрактах.
Посмотреть ОригиналОтветить0
UnluckyMinervip
· 07-10 21:51
Кодовая проверка не строгая.
Посмотреть ОригиналОтветить0
ForumMiningMastervip
· 07-10 21:49
Еще одна уязвимость была использована
Посмотреть ОригиналОтветить0
  • Закрепить