Протокол Cream Finance - REKT



Инспектор rekt снова возвращается.

$18.8 миллионов украдены убийцей в призрачной маске, на этот раз из олдскульного протокола DeFi.

Cream Finance прошел аудит в Trail of Bits (один из немногих аудиторов, которого нет в нашем рейтинге) 28-го января 2021.

Однако, даже самый основательный аудит теряет смысл, как только в протокол вносятся изменения.

10 февраля 2021 предложение Cream добавить токен AMP вступило в силу, и уязвимость открылась.

Источник: @peckshield

418,311,571 токенов AMP и 1,308.09 ETH были потеряны из контракта токена AMP протокола Cream Finance.

Контракт токена AMP имплементирует ERC1820 на основе ERC77, у которого для повторного входа есть _callPreTransferHooks.

Уязвимость повторного входа внутри контракта токена AMP позволила эксплоитеру подсадить вторую функцию borrow() внутрь transfer() токена до того, как первоначальная borrow() была обновлена:

Пример транзакции эксплоита (одной из 17)

Контракты атаки: A, Б и кошелек эксплоитера.

В примере, описанном выше, хакер делает следующее:

1: Использует контракт A, чтобы взять во флэш-займ 500 WETH, чтобы использовать их как залог на Cream, и сделать минтинг 24.17k crETH

2: Занимает 19.48M AMP в обмен на crETH

3: Проводит эксплоит ошибки повторного входа с помощью вставки еще одной функции borrow() в трансфер токена, забрав еще 355 ETH до того, как произошло обновление первоначальной borrow().

4: Создает контракт Б, для финансирования которого использует половину (9.74M) от заимствованных AMP.

5: Затем контракт Б ликвидирует часть займа контракта А, возмещая 187 WETH и переведя их обратно в контракт А.

6: Затем контракт А использует ETH, которые были взяты в долг с помощью повторного входа, чтобы выплатить оставшуюся часть флэш-займа, оставив излишек в размере 41 ETH и 9.74 АМР в качестве прибыли от этой транзакции.

Аналогичный процесс был использован для проведения 17 транзакций, что в общей сложности позволило накопить почти 6 тысяч ETH.

В момент написания статьи украденные ETH (на данный момент их стоимость превышает 18 миллионов долларов) остаются на адресе эксплоитера: 0xce1f4b4f17224ec6df16eeb1e3e5321c54ff6ede

Протокол Cream никогда не блистал безупречной репутацией. Возможно, именно поэтому многие подумали, что это был их второй или третий rekt.

Несмотря на то, что они были вовлечены в инцидент с Alpha Finance, на самом деле это первая атака, направленная непосредственно на Cream Finance.

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

Однако, как отметил @muditgupta:

...похоже, что [Cream] был бы в безопасности, если бы они просто добавили защиту от повторного входа в свою функцию займа/кредитования.

Может ли быть все так просто?


Поделиться

REKT представляет собой общественную площадку для анонимных авторов. Мы не несём ответственность за выражаемые точки зрения или контент на этом веб-сайте.

Пожертвование (ETH / ERC20): 0x3C5c2F4bCeC51a36494682f91Dbc6cA7c63B514C

Дисклеймер:

REKT не несет никакой ответственности за любое содержание, размещенное на нашем Веб-сайте или имеющее какое-либо отношение к оказываемым нами Услугам, независимо от того, было ли оно опубликовано или создано Анонимным Автором нашего Веб-сайта или REKT. Не смотря на то, что мы устанавливаем правила поведения и нормы публикаций для Анонимных Авторов, мы не контролируем и не несем ответственность за содержание публикаций Анонимных Авторов, а также за то, чем делятся и что передают Авторы с помощью нашего Сайта и наших Сервисов, и не несем ответственность за любое оскорбительное, неуместное, непристойное, незаконное или спорное содержание, с которым вы можете столкнуться на нашем Веб-сайте и на наших Сервисах. REKT не несет ответственность за поведение, будь то онлайн или офлайн, любого пользователя нашего Веб-сайта или наших Сервисов.