Новости 5 225 525 токенов из воздуха: повторный вызов функции обошёлся WEMIX в 7,7 млрд вон

NewsMaker

I'm just a script
Премиум
28,800
46
8 Ноя 2022
Программная недоработка подарила хакеру абсолютную власть над чужими активами.

<div class="articl-text-cover" style="position:relative;width:100%;max-width:800px;margin-left:auto;margin-right:auto;aspect-ratio:1200/675;margin-bottom:2rem;overflow:hidden">
vpdhr06bx4h092cbzktf6c5n8rgeoqzr.jpg

<div itemprop="articleBody">Криптовалютные проекты нередко доверяют контроль над ключевыми функциями смарт-контрактов узкому кругу администраторов, и именно эта модель дала сбой в случае с токеном WEMIX. Команда WEMIX рассказала о причинах хакерской атаки, произошедшей 26 июля в 18:17 по корейскому времени. Злоумышленник нашёл лазейку в коде смарт-контрактов и перехватил права владельца сразу над двумя из них, после чего незаконно выпустил около 5 225 525 токенов WEMIX Dollar на сумму порядка 7,7 миллиарда вон.

По данным команды проекта, взлом не был связан с компрометацией внутренних систем компании или утечкой закрытых ключей администраторов. Причина крылась в двух смарт-контрактах — DIOS, который отвечает за стабильность курса WEMIX Dollar, и AMA, который обменивает залоговые активы в соотношении один к одному. Смарт-контракт — это программа, которая автоматически выполняет заданные действия при соблюдении определённых условий. Оба контракта к моменту атаки уже почти не использовались — их планировали вывести из эксплуатации.

Контракты содержали функцию инициализации, регистрирующую адрес владельца, — она должна была срабатывать только один раз, сразу после запуска. При обновлении в ноябре 2022 года ограничение на её вызов изменили и разрешили запускать функцию дважды, но саму её при этом заново не выполнили. Из-за этого счётчик вызовов остался на единице, а повторный запуск оказался доступен без каких-либо проверок доступа.

Воспользовавшись этим, злоумышленник развернул собственный вредоносный контракт, вызвал функцию инициализации во второй раз и заменил адреса владельцев обоих контрактов на свой. Это дало ему право самостоятельно вызывать функции выпуска и обмена токенов, а также перенаправлять на свой счёт комиссии и доходы от операций. Для чеканки токенов он провёл девять циклов флеш-займов и свопов между двумя контрактами.

В результате атакующий выпустил токены WEMIX Dollar на сумму около 7,7 миллиарда вон и вывел из системы 723 244 USDC.e — стейблкоин, служащий залоговым активом для WEMIX Dollar, — на сумму около 1 миллиарда вон. Отдельно были переведены и 34 752 обычных монеты WEMIX. Команда WEMIX также сообщила, что обнаружила признаки связи части игровых токенов с WEMIX Dollar и продолжает анализировать соответствующие транзакции.

После выявления инцидента команда установила адрес злоумышленника, обратилась к биржам, куда поступили похищенные средства, с требованием заблокировать этот адрес, и отозвала права на выпуск токенов, чтобы исключить дальнейшую эмиссию. Также были временно остановлены пулы ликвидности, связанные с WEMIX Dollar, мост Chainlink CCIP, внутренний PLAY Bridge и биржа PNIX DEX.

Компания Wemade направила официальное заявление в правоохранительные органы 28 июля и теперь активно сотрудничает со следствием. Для снижения подобных рисков разработчикам смарт-контрактов стоит ограничивать повторный вызов функций инициализации и проверять права доступа при каждом изменении логики контракта после обновлений.
 
Источник новости
www.securitylab.ru

Похожие темы