Skip to content
Yieldo

CREAM Lending

$130.0M
Украдено средств
Возвращено средств
27 Oct 2021
Дата инцидента
Техника
Spot Price Manipulation
Классификация
Oracle Manipulation
Тип цели
DeFi Protocol
Затронутые сети
Ethereum
Источник
Нет публичной ссылки на источник

27 октября 2021 года кредитный протокол Cream Finance на Ethereum потерял около $130 млн за одну последовательность транзакций — атакующий манипулировал внутренней ценой, по которой протокол оценивал доходный токен-залог. Это был уже третий крупный взлом Cream за 2021 год: до этого были потери $37,5 млн в феврале и около $18,8 млн в августе (Decrypt).

Как устроена атака

Целью атаки был не внешний прайс-фид вроде Chainlink, а собственный учётный оракул Cream для токена yUSDVault — доли в хранилище Yearn, принимавшейся в качестве залога. Этот оракул считал цену одной доли как общую стоимость активов в хранилище, делённую на общее количество выпущенных долей. Обе части этой дроби мог сдвинуть один и тот же участник в рамках одной транзакции — именно эту брешь и использовал атакующий (Halborn).

С помощью двух скоординированных адресов и флеш-кредитов от MakerDAO и Aave атакующий провёл заёмный капитал через пул yPool на Curve в yUSD, затем — в стратегию yUSDVault на Yearn, а полученные доли хранилища внёс на Cream в качестве залога, чтобы выпустить crYUSD и занять ещё. Повторив цикл несколько раз, он собрал на двух адресах реальную залоговую позицию примерно на $1,5 млрд в crYUSD (Rekt).

Финальным шагом стала сама манипуляция: одной транзакцией атакующий погасил доли yUSDVault примерно на $500 млн, обменяв их обратно на yUSD. Это резко сократило общее число долей хранилища, тогда как его суммарная стоимость почти не изменилась — а по формуле Cream это означало, что цена каждой оставшейся доли выросла примерно вдвое. Реальные ~$1,5 млрд залога протокол внезапно увидел как ~$3 млрд, и под этот фиктивный баланс атакующий занял практически всю доступную ликвидность Cream — около $130 млн чистыми.

Вся цепочка — получение флеш-кредитов, циклы через Curve и Yearn, манипулятивное погашение долей, заём и возврат флеш-кредитов — выполнилась атомарно, в рамках одного пакета транзакций, так что ни у кипера, ни у мультисига, ни у обновления прайс-фида не было шанса вмешаться.

Что было дальше

Разработчик Cream публично предложил атакующему 10% «вознаграждение» (около $13 млн) за возврат оставшихся средств. Предложение осталось без ответа: похищенные активы атакующий провёл через Tornado Cash и RenBridge, конвертировав часть в биткоин, а также сбросил крупную позицию CRETH2 на Uniswap (Rekt). Средства так и не были возвращены.

Cream Finance не закрылся. Протокол продолжил работу, но октябрьский взлом — третий за год — оставил его без резервов, достаточных для сколько-нибудь заметной компенсации вкладчикам. К середине 2020-х независимые обзоры описывают Cream как legacy-протокол с заблокированной стоимостью в единицы миллионов долларов — прямое следствие доверия, утраченного за серию взломов 2021 года (CryptoAdventure).

Что из этого следует

  • Любой кредитный рынок, принимающий доходный «обёрточный» токен в качестве залога (доли хранилища, LP-токены, деривативы застейканных активов), наследует ценовой риск всего, что вложено внутрь — глядя на строку «залог: yUSD», пользователь не может увидеть эту вложенность.
  • Внутренний оракул цены доли, устроенный как стоимость, делённая на количество долей, манипулируем всегда, когда один участник может в одной транзакции сдвинуть и числитель, и знаменатель — паттерн, который встречается далеко не только в этой схеме хранилища.
  • Флеш-кредиты снимают ограничение по капиталу целиком: атакующему не требовался собственный капитал — только атомарная последовательность вызовов, поэтому безопасность протокола должна закладываться исходя из того, что у атакующего временно есть неограниченные средства в рамках одного блока.
  • История инцидентов самого протокола — это видимая информация о риске: это был третий взлом Cream за восемь месяцев, а TVL после первых двух не сократился настолько, чтобы ограничить ущерб от третьего.

On-chain DeFi несёт риск смарт-контрактов. Держите основные средства на регулируемой бирже.