Захват управления и поддельные сообщения: два инцидента на $9,42 млн
25.08.2026 | CoinKyt Company
5 мин
share button
21–23 августа 2026 года произошло два крупных инцидента. В The Sandbox злоумышленник обманул межсетевой мост и выпускал токены без обеспечения. В Term Finance он захватил голоса в системе управления, отключил защитную паузу и вывел активы из хранилищ. Общий ущерб превысил $9,4 млн.

Расследование «КоинКит» анализирует, как именно сработали обе атаки и куда ушли средства.


Введение


Межсетевой мост
— это сервис, который позволяет переводить криптовалюту из одного блокчейна в другой. Обычно он работает по принципу блокировки: токены замораживаются в одной сети, и только тогда выпускаются в другой.

Система управления (governance)
— это механизм, при котором держатели специальных токенов голосуют за изменения в протоколе. Например, за то, куда направить средства или как обновить код.
Оба инцидента показали, что ошибки в логике доступа и управления могут быть столь же опасны, как прямые взломы смарт-контрактов.


The Sandbox — фальшивые сообщения через межсетевой мост


Ход инцидента

1. Злоумышленник воспользовался функцией approveAndCall в контракте токена SAND. Эта функция обычно нужна, чтобы одобрить трату токенов и сразу вызвать другой сервис. Атакующий указал в качестве сервиса адрес LayerZero Endpoint — это технология, которая передаёт сообщения между блокчейнами.

2. Проблема в том, что при таком вызове внешний сервис видел отправителем не самого злоумышленника, а контракт токена SAND. Поэтому вызов setDelegate — функции, которая назначает управляющего мостом — прошёл от имени самого токена. Система посчитала, что токен сам назначил нового управляющего.


3. Получив роль delegate (управляющего), злоумышленник изменил настройки проверки входящих сообщений. После этого любое поддельное сообщение из другой сети проходило проверку и передавалось контракту.


4. Контракт, получив ложное сообщение, считал, что в другой сети реальные токены SAND заблокированы, и выпускал новые токены в сети Base и BNB Smart Chain. Было зафиксировано более 400 транзакций и номинальный выпуск на ~$49 млрд. Но реальной ликвидности для продажи такого объёма не существовало.


5. Параллельно атакующий вывел реальные токены из адаптера SAND на Ethereum. Продав их через несколько децентрализованных бирж (DEX), он получил WETH — это «обёрнутый» эфириум, токен-версия ETH, которую удобно использовать в смарт-контрактах.


6. Команда The Sandbox подтвердила выпуск необеспеченных токенов, отключила мосты в обеих сетях и изолировала находившиеся там активы. Пользовательские кошельки, по заявлению проекта, не пострадали.

Почему это стало возможным


Ошибка находилась в реализации токена SAND для работы в нескольких сетей (стандарт OFT), а не в базовых контрактах LayerZero. Функция approveAndCall позволяла вызвать внешний контракт от имени самого токена. Это дало возможность выполнить привилегированную команду setDelegate, которая обычно доступна только самому контракту.
Полученная роль delegate напрямую не выпускала токены, но позволила изменить правила проверки входящих сообщений. После этого поддельные сообщения стали приводить к реальному выпуску.

Детали расследования: движение средств


Атакующий продал похищенные и выпущенные SAND через несколько DEX за WETH. Все средства были собраны на Ethereum-адресе:
0xac76b04397c9296dfc00e25c96d8e51b4edfaf29
На момент расследования средства остаются на этом адресе без движения. Реальный ущерб от продажи составил около $960 тыс.


Term Finance — захват голосов и отключение защиты


Ход инцидента


1. Злоумышленник приобрёл специальные «обёрнутые» доли tmvETH в хранилище ETH Meta Vault. Эти доли дают право голоса в системе управления. Поскольку таких участников было очень мало, небольшая покупка обеспечила атакующему 90,66% всех голосов.


2. Через связанный контракт он создал предложение №5 и самостоятельно проголосовал за него.


3. Параллельно другой контракт внёс по 5 USDC в пять отдельных USDC-хранилищ и получил 100% голосов в каждом из них. Это стало возможно, потому что в этих хранилищах никто другой не оборачивал свои депозиты в управляющие токены.


3. 23 августа предложения обнулили timelock — это защитная пауза, которая обычно даёт пользователям время отреагировать на подозрительные изменения. Задержка была установлена на ноль.


4. В ETH-ветке средства вернули из четырёх обычных инвестиционных стратегий, направили в промежуточный контракт и перевели на адрес злоумышленника — всего 2 841,74 WETH.


5. В USDC-ветке контракты, которые проверяли стоимость залоговых токенов, были заменены на поддельные. После этого пять хранилищ заплатили за фиктивный токен 1 679 639 USDC.


Почему это стало возможным


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


Детали расследования: движение средств


Для финансирования атаки обе ветки получили по 1 ETH из Tornado Cash — сервиса, который скрывает источник средств. Всего было использовано 2 ETH.

После вывода WETH был развёрнут обратно в обычный ETH, а USDC обменян примерно на 1,68 млн DAI — другой стейблкоин, привязанный к доллару. Все средства были собраны на адресе:
0xD5183d8BfC65a50863C62aF2538198A8288FFc13
где и остаются на момент расследования.


Заключение


Инциденты в The Sandbox и Term Finance показали две разные, но одинаково опасные слабости: доверие к внешним сообщениям без проверки реального баланса и концентрация управления в руках нескольких участников.

В The Sandbox комбинация двух штатных функций — approveAndCall и авторизация по адресу отправителя — позволила захватить контроль над мостом. В Term Finance отсутствие минимального порога для создания предложений и зависимость timelock от захваченного модуля управления сделали защиту бесполезной.