Главное:
- Протокол Scallop потерял около $142 000 из-за уязвимости в старом контракте вознаграждений.
- Злоумышленник воспользовался ошибкой в расчёте бонусов и вывел весь пул одной транзакцией.
Протокол Scallop, работающий как денежный рынок в сети Sui, лишился около $142 000 в токенах SUI. Причиной стала уязвимость в устаревшем контракте вознаграждений.
Атака не затронула основной протокол. Злоумышленник использовал старый вспомогательный контракт, связанный с механизмом вознаграждений sSUI — системой начисления бонусов для держателей SUI.
Речь идет о версии spool V2, опубликованной еще в ноябре 2023 года — более чем за 17 месяцев до взлома. В сети Sui контракты после развертывания нельзя изменить. Если разработчики не ограничивают доступ к старым версиям, они остаются активными — именно это и стало слабым местом.
Главная проблема заключалась в неинициализированной переменной last_index, которая отвечает за учет накопленных вознаграждений. При создании нового аккаунта она не задавалась, что позволило злоумышленнику получить выплаты так, будто он участвовал в стейкинге с самого начала.
Похищенные средства быстро провели через миксер в сети Sui, аналог Tornado Cash, что существенно усложнило их отслеживание.
Реакция Scallop и восстановление работы
Команда Scallop заморозила уязвимый контракт в течение нескольких минут. При этом основные функции протокола — кредитование и заимствование — продолжили работать. Средства пользователей на других рынках не пострадали.
Проект пообещал полностью покрыть убытки за счет собственного казначейства. Доходность пользователей снижаться не будет.
Основные контракты были разблокированы, а ввод и вывод средств вернулись в нормальный режим — менее чем через два часа после атаки.
Позже злоумышленник вышел на связь с командой и предложил вернуть 80% средств в обмен на вознаграждение за «белый взлом». Сейчас команда выясняет, почему уязвимость не выявили аудиторы OtterSec и MoveBit.