
26 апреля 2026 года злоумышленник вывел около 150 тыс. SUI (~$142 тыс.) из устаревшего контракта наград протокола Scallop, работающего в сети Sui. Атака стала возможной из-за отсутствия проверки принадлежности аккаунта к конкретному пулу наград. Scallop заморозил затронутый контракт и объявил о полной компенсации потерь из казны протокола.
Ход инцидента
Scallop — протокол кредитования в сети Sui. Помимо основного контракта, где хранятся депозиты и займы пользователей, в системе существовал отдельный старый контракт для начисления наград по пулу sSUI (токенизированный SUI, который пользователи получают при размещении средств в протоколе).
Именно этот вспомогательный контракт стал целью атаки.
В одной транзакции (6WNDjCX3W852hipq6yrHhpUaSFHSPWfTxuLKaQkgNfVL) злоумышленник вывел ~150 тыс. SUI из пула sSUI rewards.
Почему это стало возможным
Уязвимость находилась в логике проверки наград. Контракт использовал объект SpoolAccount — внутренний аккаунт пользователя, который отслеживает накопленные reward points (баллы для получения наград).
Проблема заключалась в том, что контракт не проверял, действительно ли переданный SpoolAccount принадлежит тому Spool (пулу), по которому рассчитываются награды. Атакующий воспользовался этим: подставив «чужой» spool-индекс, он искусственно завысил свои reward points и получил право на вывод суммы, значительно превышающей реальный вклад.
По сути, в контракте отсутствовала одна проверка — и именно это позволило манипулировать расчётом наград.
Детали расследования: движение средств
1️⃣ Вся сумма (~150 тыс. SUI) была выведена в одной транзакции на адрес атакующего.
2️⃣ Часть SUI злоумышленник обменял через агрегатор DEX в сети Sui на стейблкоины wUSDC и wUSDT.
3️⃣ Основную сумму атакующий разбил на четыре новых адреса: по схеме 30 тыс. + 40 тыс. + 40 тыс. + 40 тыс. SUI.
4️⃣ Затем средства с этих адресов были переведены на два крупных кошелька, характер которых указывает на горячие адреса централизованных бирж.
Конвертация части средств в стейблкоины и немедленная отправка на предположительно биржевые адреса свидетельствуют о намерении быстро реализовать похищенное.
Заключение
Инцидент со Scallop — классический пример того, как одна пропущенная проверка в устаревшем контракте открывает возможность для манипуляции. Основной протокол не пострадал: средства пользователей на депозитах и займах остались нетронутыми. Потери в размере ~$142 тыс. будут покрыты из казны протокола.
Этот случай напоминает о важности своевременного аудита и вывода из эксплуатации старых контрактов — даже если они кажутся второстепенными.


