22 мая хакеры нашли уязвимость в бизнес-логике смартконтракта протокола Cetus, направленного на пулы CLMM
Содержание
Злоумышленник использовал уязвимость в контракте CLMM, возникшую из-за недостатка в библиотеке с открытым кодом inter_mate, которая использовалась в смартконтрактах Cetus. Вот как произошел эксплойт:
Злоумышленник воспользовался функцией мгновенного обмена (flash_swap), чтобы временно снизить цены в пулах ликвидности. Это позволило ему создать выгодные условия для дальнейших действий.
Затем хакер открыл позиции в диапазоне, где цены были выше, что позволило ему получить преимущество при добавлении ликвидности.
В функции add_liquidity отсутствовала надлежащая проверка переполнения чисел. Злоумышленник использовал это, чтобы внести искусственно завышенное количество ликвидности, но фактически не предоставляя реальное количество токенов.
Благодаря фальшивой ликвидности злоумышленник смог многократно выводить ликвидность, получая реальные токены из пулов.
Злоумышленник повторял эти действия, используя некорректные вычисления в других функциях (overflowing_sub, get_liquidity_from_a). Путем такой подмены он и насобирал миллионы долларов.
Используя недостатки автоматических вычислений, злоумышленник переполнил вычисления того, сколько нужно было заплатить для добавления ликвидности в различные пулы. Это позволило ему платить по значительно сниженной ставке, а ликвидировать — по оригинальной ставке.
В настоящее время на одном из Sui-счетов хакера остаётся 208 различных монет на сумму около $24 млн. На другой — еще 6 токенов на сумму $87 млн. Активность отсутствует (адреса заморожены).
Остальные украденные активы хакер конвертировал в ETH, сейчас токены хранятся в двух кошельках Ethereum: на один $54,4 млн, на другой — $8,8 млн.
Cetus сотрудничает с командой безопасности Sui и несколькими партнерами по аудиту для повторного просмотра обновленных контрактов и проведения всестороннего аудита. Только после полной валидации начнется постепенная реактивация пулов CLMM и сервисов. Также команда предложила план возвращения замороженных активов. На уровне руководства сообщества протокола проведут голосование за обновление. Если его одобрят, это позволит вернуть замороженные активы из кошельков злоумышленников без их подписи. Восстановленные средства будут защищены в кошельке с мультиподписью, который совместно будут контролировать Cetus, OtterSec и Sui Foundation.
Голосование началось 27 мая и продлится до 3 июня. Для того чтобы оно было успешным, необходимо участие более 50% от общего количества токенов, и чтобы его одобрило большинство.
Фонд Sui Foundation предоставил Cetus обеспеченный заем, чтобы на 100% компенсировать убытки пользователям. Также Sui Foundation выделил $10 млн на безопасность экосистемы, аудит финансирования, вознаграждения за исправление ошибок и официальные инструменты проверки для предотвращения будущих злоупотреблений.
Кроме того, несмотря на инцидент, на этой неделе все награды xCETUS начислены и распределены, поскольку были зарегистрированы до остановки пулов. Однако на следующей неделе выплата наград xCETUS будет приостановлена из-за остановки CLMM-пулов. xCETUS — это специальный токен, который пользователи получают путем стейкинга основного токена CETUS на платформе Cetus Protocol. Он выполняет роль токена управления и вознаграждения.
Пострадавшим осталось дождаться июня и результатов голосования. Команда Cetus обещала усилить безопасность и улучшить контроль рисков: