Протокол Fei Rari - REKT 2



Протокол Fei Rari - rekt.

Между примерно 9:00 и 9:35 утра UTC 30 апреля семь пулов Rari Fuse подверглись сливу общей суммой на ~$80M.

Несмотря на заявления о том, что “ни один из пулов arbitrum не содержит уязвимостей”, сегодня атака продолжилась на Arbitrum, хотя потери (~100 ETH) были минимальными по сравнению с предыдыщей атакой.

Это не первый раз, когда Rari оказывается rekt. Будем надеяться, что хакеры не сделают ход конем.

Источник: Hacxyk, Certik

Rari использует форкнутый код Compound, который не следует схеме check-effect-interaction, что привело к ряду инцидентов повторного входа: CREAM, Hundred, Voltage/Ola.

На этот раз, однако, схема повторного входа была проведена через CEther, который использует call.value для пересылки ETH. В том случае, когда получателем является контракт, call.value может сделать еще один вызов, которым можно воспользоваться в своих целях.

Об этой уязвимости сообщили в начале марта, и нейтрализовали её, исправив контракты CToken и Comptroller. Тем не менее, новые защиты от повторного входа не коснулись функции exitMarket внутри контракта Comptroller.

exitMarket переустанавливает значение депонированного актива как больше не являющегося коллатералом, который затем можно вывести, как только в обмен на фонды больше не взимается долг. Притом, что проверки проводятся после трансфера (из-за того, что код Compound не следует схеме check-effect-interaction), транзакция не регистрирует заемную сумму как долг до изъятия залога.

Используя флэш-займы для одалживания ETH, хакер смог повторно войти через call.value, вызвав exitMarket, чтобы вывести взятый во флэш-займ коллатерал, одновременно сохраняя взятые в долг ETH.

Пошаговый ход атаки на примере транзакции 0xab4860…

1. Хакер взял во флэш-займ 150,000,000 USDC и 50,000 WETH

2. Депонировал 150,000,000 USDC в качестве коллатерала в контракт fUSDC-127, который представляет собой уязвимую версию протокола Compound.

3. С помощью депонированного коллатерала злоумышленник взял в долг 1,977 ETH через функцию “borrow()”.

4. Но функция “borrow() не следует схеме check-effect-interaction. В частности, она переводит ETH в контракт хакера, прежде чем обновляет записи о его фактических займах.

5. Следовательно, так как запись о займе злоумышленника не обновлена, он сделал вызов повторного входа "exitmarket()" в функции fallback, что позволило ему вывести весь свой коллатерал (150M USDC).

6. Хакер повторил шаги 1~5 со множеством других токенов.

7. Ну и наконец, злоумышленник выплатил флэш-займ и перевел остаток на свой адрес в качестве прибыли, и направил часть этих фондов в Tornado Cash.

Пострадавшие пулы Fuse: 8, 18, 27, 127, 144, 146, 156

Адрес атакующего (включающий все транзакции эксплоита): 0x616275…

Контракты атаки: 0xE39f3C…, 0x32075b…

Транзакция атаки на Arbitrum: 0x3212d0…

Потерянные фонды:

6 037,8139071514 eth

20,251,603.11559831 fei

14,278,990.684390573 dai

1,948,952.1788665l lusd

10,055,556.328173 usdc

132,959.9008 usdt

31,615.8714 rai

13,101,364.94 frax

2,765,891 ust

Итоговая оценочная стоимость: 79 749 026$

Вслед за атакой хакер начал вкладывать выручку в Tornado Cash, однако вскоре прекратил, переведя всего 5400 ETH (~$15M).

Притом, что в его кошельке все еще остаются $62.7M, рассматривает ли хакер предложение баунти, чтобы вернуть средства?

Похоже что Tribe DAO настроены оптимистично, поскольку они послали следующее сообщение через etherscan.

Мы заметили, что вы, возможно, рассматриваете предложение в размере $10 млн., которое мы выплатим вам, не задавая никаких вопросов. Если вы хотите принять наше предложение, пожалуйста, внесите оставшиеся средства в таймлок Tribe DAO: 0xd51dbA7a94e1adEa403553A8235C302cEbF41a3c

Всем форкам Compound стоило бы воспользоваться этой возможностью, чтобы проверить свои коды на похожие уязвимости.

Как отметил 0x_b1:

Этот эксплоит был исправлен в коде Compound некоторое время назад, но был изменен разработчиками на прежний вид в этом коммите

Надеемся, что пользователь, который спросил у Rari, в безопасности ли пулы Arbitrum, не очень сильно пострадал, потому что Rari уверили его в безопасности этих пулов, и в тот же день стали жертвой такого же эксплоита.

Небольшая проверка помогла бы избежать двойной потери.

Теперь Rari делит позицию #10 в рейтинге.


Поделиться

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

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

Дисклеймер:

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