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 обіцяла посилити безпеку та покращити контроль ризиків: