Euler Finance столкнулся с флеш-атакой займа, убытки составили почти 200 миллионов долларов
13 марта 2023 года проект Euler Finance подвергся флеш-атаке займа из-за уязвимости контракта, что привело к убыткам около 197 миллионов долларов. Злоумышленники использовали уязвимость в функции donateToReserves токена Etoken, в которой отсутствовала проверка ликвидности, чтобы получить огромную прибыль, осуществляя множество операций с различными валютами.
Анализ процесса атаки
Атакующий сначала взял в долг 30 миллионов DAI через Срочные займы на одной из платформ для кредитования и развернул два контракта: кредитный контракт и контракт на ликвидацию.
Затем 20 миллионов DAI были заложены в контракт Euler Protocol, получив 19,5 миллиона eDAI.
Используя функцию 10-кратного кредитного плеча протокола Euler, одолжите 195.6 миллиона eDAI и 200 миллионов dDAI.
Использовать оставшиеся 10 миллионов DAI для частичного погашения долга и уничтожения соответствующего dDAI, а затем снова занять равное количество eDAI и dDAI.
Пожертвовать 100 миллионов eDAI через функцию donateToReserves (в 10 раз больше суммы для погашения) и немедленно выполнить операцию ликвидации, получив 310 миллионов dDAI и 250 миллионов eDAI.
В конце извлекли 3890 миллионов DAI, вернули Срочные займы в 3000 миллионов DAI, чистая прибыль составила около 887 миллионов DAI.
Причина уязвимости
Ключом к успешной атаке является отсутствие необходимой проверки ликвидности в функции donateToReserves Euler Finance. В отличие от других функций, таких как mint, donateToReserves не вызывает функцию checkLiquidity для проверки состояния средств пользователя. Это позволяет злоумышленнику манипулировать своим счетом, чтобы попасть в состояние, подлежащее ликвидации, и затем осуществить ликвидацию для получения прибыли.
В нормальных условиях функция checkLiquidity вызывает модуль RiskManager, чтобы обеспечить, что количество Etoken у пользователя больше, чем количество Dtoken, для поддержания здорового состояния счета. Однако функция donateToReserves пропускает этот ключевой шаг, предоставляя злоумышленникам возможность воспользоваться этим.
Рекомендации по безопасности
Это событие подчеркивает важность аудита безопасности смарт-контрактов. Для проектов, связанных с кредитованием, особенно необходимо уделить внимание следующим аспектам:
Целостность механизма возврата средств
Всеобъемлющая проверка ликвидности
Строгость процесса ликвидации долгов
Проектная команда должна провести всесторонний и глубокий аудит безопасности перед развертыванием контракта, чтобы гарантировать безопасность и стабильность всех функций. В то же время постоянный мониторинг безопасности и своевременное исправление уязвимостей также являются необходимыми мерами для обеспечения долгосрочной безопасной работы проекта.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
16 Лайков
Награда
16
7
Репост
Поделиться
комментарий
0/400
Ser_Liquidated
· 07-14 00:49
Снова нужно жертвовать проектом tks
Посмотреть ОригиналОтветить0
mev_me_maybe
· 07-14 00:03
Снова-снова-снова демпинг.
Посмотреть ОригиналОтветить0
0xSoulless
· 07-13 14:42
неудачники год за годом разыгрывайте людей как лохов, разыгрывайте людей как лохов и снова разыгрывайте людей как лохов
Посмотреть ОригиналОтветить0
RugpullSurvivor
· 07-11 02:50
Снова большая кастрюля! У тебя нет чувства вины?
Посмотреть ОригиналОтветить0
GasFeeCrier
· 07-11 02:46
Сижу и жду, когда команда проекта исчезнет и начнется мошенничество
Посмотреть ОригиналОтветить0
GasFeeCrybaby
· 07-11 02:39
Снова украли, тьфу-тьфу.
Посмотреть ОригиналОтветить0
GasWaster
· 07-11 02:35
rip... еще один дорогой урок по оптимизации газа smh
Euler Finance подвергся флеш-атаке займа на 200 миллионов долларов; уязвимость контракта стала основной причиной.
Euler Finance столкнулся с флеш-атакой займа, убытки составили почти 200 миллионов долларов
13 марта 2023 года проект Euler Finance подвергся флеш-атаке займа из-за уязвимости контракта, что привело к убыткам около 197 миллионов долларов. Злоумышленники использовали уязвимость в функции donateToReserves токена Etoken, в которой отсутствовала проверка ликвидности, чтобы получить огромную прибыль, осуществляя множество операций с различными валютами.
Анализ процесса атаки
Атакующий сначала взял в долг 30 миллионов DAI через Срочные займы на одной из платформ для кредитования и развернул два контракта: кредитный контракт и контракт на ликвидацию.
Затем 20 миллионов DAI были заложены в контракт Euler Protocol, получив 19,5 миллиона eDAI.
Используя функцию 10-кратного кредитного плеча протокола Euler, одолжите 195.6 миллиона eDAI и 200 миллионов dDAI.
Использовать оставшиеся 10 миллионов DAI для частичного погашения долга и уничтожения соответствующего dDAI, а затем снова занять равное количество eDAI и dDAI.
Пожертвовать 100 миллионов eDAI через функцию donateToReserves (в 10 раз больше суммы для погашения) и немедленно выполнить операцию ликвидации, получив 310 миллионов dDAI и 250 миллионов eDAI.
В конце извлекли 3890 миллионов DAI, вернули Срочные займы в 3000 миллионов DAI, чистая прибыль составила около 887 миллионов DAI.
Причина уязвимости
Ключом к успешной атаке является отсутствие необходимой проверки ликвидности в функции donateToReserves Euler Finance. В отличие от других функций, таких как mint, donateToReserves не вызывает функцию checkLiquidity для проверки состояния средств пользователя. Это позволяет злоумышленнику манипулировать своим счетом, чтобы попасть в состояние, подлежащее ликвидации, и затем осуществить ликвидацию для получения прибыли.
В нормальных условиях функция checkLiquidity вызывает модуль RiskManager, чтобы обеспечить, что количество Etoken у пользователя больше, чем количество Dtoken, для поддержания здорового состояния счета. Однако функция donateToReserves пропускает этот ключевой шаг, предоставляя злоумышленникам возможность воспользоваться этим.
Рекомендации по безопасности
Это событие подчеркивает важность аудита безопасности смарт-контрактов. Для проектов, связанных с кредитованием, особенно необходимо уделить внимание следующим аспектам:
Проектная команда должна провести всесторонний и глубокий аудит безопасности перед развертыванием контракта, чтобы гарантировать безопасность и стабильность всех функций. В то же время постоянный мониторинг безопасности и своевременное исправление уязвимостей также являются необходимыми мерами для обеспечения долгосрочной безопасной работы проекта.