Сui-based протокол доходного трейдинга Nemo потерял около $2.59 млн из-за известной уязвимости, вызванной развертыванием непроверенного кода, как сообщает проект.
Согласно анализу взлома от 7 сентября, проведенному Nemo, ошибка в функции, предназначенной для снижения проскальзывания, позволила злоумышленнику изменить состояние протокола. Эта функция, названная “get_sy_amount_in_for_exact_py_out”, была развернута в сети без аудита со стороны аудитора смарт-контрактов Asymptotic.
Более того, команда Asymptotic выявила эту проблему в предварительном отчете. Тем не менее, команда Nemo признает, что не смогла своевременно и должным образом отреагировать на эту проблему безопасности.
Развертывание нового кода требовало только подписи от одного адреса, что позволяло разработчику развертывать непроверенный код в сети, не раскрывая изменения. Кроме того, он не использовал хеш подтверждения, предоставленный в аудите, для развертывания, нарушив процедуру.
Это не первый случай, когда взлом оказался легко предотвратимым. Этот отчет последовал за эксплойтом на NFT-торговой платформе SuperRare на сумму $730 000 в конце июля, который был вызван базовой ошибкой в смарт-контракте, которую, по мнению экспертов, можно было легко предотвратить с помощью стандартных методов тестирования.
Процедуры безопасности изменены слишком поздно
Уязвимый код был развернут в сети в начале января. Обновленная процедура, которая, вероятно, предотвратила бы развертывание непроверенного кода в сети, была реализована в апреле.
Несмотря на обновление, уязвимость уже попала в производственную среду. Asymptotic предупредил Nemo об уязвимости 11 августа, но проект заявил, что был сосредоточен на других проблемах и не смог устранить ее до эксплойта.
Nemo приостанавливает протокол, готовит патч
Согласно анализу, основные функции протокола Nemo теперь приостановлены, чтобы предотвратить дальнейшие потери. Команда сотрудничает с несколькими командами безопасности и предоставляет все соответствующие адреса для помощи в заморозке активов на централизованных биржах.
Патч был разработан, и Asymptotic проводит аудит нового кода. Проект заявил, что удалил функцию мгновенных кредитов, исправил уязвимый код и добавил функцию ручного сброса для восстановления затронутых значений. Nemo также разрабатывает план компенсации для пользователей, включая структурирование долга на уровне токеномики.
«Основная команда разрабатывает подробный план компенсации для пользователей, включая разработку структуры долга на уровне токеномики».
Nemo приносит извинения своим пользователям и заявляет, что усвоил урок о том, что «безопасность и управление рисками требуют постоянной бдительности». Команда также пообещала улучшить свою защиту и применить более строгий контроль протокола.