2023-03-13 15:14:05
Как произошел хак протокола Euler на $175М?
Вектор атаки заключался в использовании функции пожертвования части средств из аккаунт в протокол.
Логика действий была такова:
1 Протокол Euler позволял минтить ссуду, существенно превышавшую положенный депозит, в том случае, если леверидж ссуда тут же использовалась внутри протокола, не покидая его.
2 Хакер кладет депозит DAI на сумму $30M от AAVE для подготовки к атаке.
3 Хакер минтит взамен $20М DAI - 20M токенов etoken от euler (токен, подтверждающий депозит)
4 Злоумышленник минтит $200М, искусственно заставляет протокол думать, что он внес 200М депозита и занял 200М ссуду у протокола. Т к на балансе есть 20M токенов etoken от euler - они используются как обеспечение этой $200М ссуды/одновременного депозита. Позиция не в убытке.
5 Злоумышленник возвращает $10М и «минтит» еще 200 миллионов как депозита, так и долга.
6 Хакер вызывает функцию «donateToReserve», отправляя протоколу 100 миллионов EToken (эквивалент $100М), мгновенно его аккаунт становится в убытке, следом цена Etoken искусственно пампится.
7 Используя другую учетную запись для погашения долга, злоумышленник с адреса №2 ликвидирует около $260М необеспеченного долга + выплачивает комиссию протоколу в обмен на залог на сумму около $300М.
Это в том числе одна из фишек ликвидационного движка Euler.
8 Ликвидатор получает $38.87М, из которых возмещает $30М DAI, взятых в долг у AAVE, получает профит в $8.87M DAI.
9 Атака повторяется многократно с другими токенами, таким образом - весь протокол опустошается.
118 views12:14