
17 мая 2026 года злоумышленник повторно атаковал протокол MetaSea на сети Arbitrum и вывел около $81.1 тыс. Схема была простой: открыть позицию, сразу же закрыть её — и получить вознаграждение, несоразмерно большее реального вклада. Атакующий повторял этот цикл несколько раз, пока не вывел нужную сумму.
Что такое MetaSea и что такое позиция
MetaSea — это DeFi-протокол (децентрализованная финансовая платформа), где пользователи могут открывать позиции: вносить средства, чтобы получать вознаграждения в токенах SEA.
Позиция — это как депозит: вы кладёте деньги, держите их в протоколе и получаете проценты. Логика проста: чем дольше держите — тем больше зарабатываете.
Функция redeemPosition() — это кнопка «забрать средства и вознаграждение». В нормальной ситуации её нажимают через какое-то время после открытия позиции.
Что произошло
Атакующий обнаружил, что MetaSea не проверяет, сколько времени прошло с момента открытия позиции. Это означало: можно открыть позицию и сразу же её закрыть — и получить вознаграждение, как будто деньги уже «поработали».
Каждый такой цикл выглядел так:
1️⃣ Атакующий открывал позицию.
2️⃣ Сразу вызывал redeemPosition() — функцию закрытия позиции и получения вознаграждения.
3️⃣ Контракт начислял SEA из общего distributor-контракта (хранилища, из которого выплачиваются награды всем участникам) — причём в количестве, несопоставимом с реальным вкладом.
4️⃣ Атакующий продавал SEA за USDT0 (стейблкоин в сети Arbitrum, привязанный к доллару) и выводил прибыль.
Цикл повторялся, пока схема работала.
Почему это стало возможным
Проблема была в бизнес-логике протокола: не было никакого ограничения по времени или по количеству блоков между открытием и закрытием позиции. Контракт просто не задавал вопрос «сколько времени прошло?».
Представьте кофейню, где акция «купи три чашки — получи одну бесплатно». Но кассир не проверяет, когда были куплены предыдущие чашки. Один и тот же чек можно предъявлять снова и снова.
Именно так работала атака: каждый цикл открытия и немедленного закрытия позиции давал «награду» из общего котла, пока котёл не опустел на $81.1 тыс.
Детали расследования: движение средств
1️⃣ Украденные активы в USDT0 накапливалаись на адресе атакующего 0x352173FAbF0E67E1cB1fcdF15474D0477D5D3674 в сети Arbitrum.
2️⃣ Там же токены были обменяны на WETH (Wrapped Ether — токенизированная версия ETH, удобная для использования в DeFi-протоколах).
3️⃣ Основная часть — около $65.5 тыс. (31 WETH) — была переброшена в сеть Ethereum на адрес 0x8CA97E766f80a7b37320d9D4B3a99FFaB26C6c2E через сервис Relay.link (агрегатор мостов для быстрого перевода между сетями).
4️⃣ Меньшая часть осталась на исходном адресе в Arbitrum.
На момент расследования средства в Ethereum не двигались.
Заключение
Атака на MetaSea — классический пример эксплуатации отсутствия проверки времени. Протокол предполагал, что пользователи будут держать позиции хотя бы какое-то время — но нигде это не закрепил технически.
Одна строчка кода с проверкой минимального времени между открытием и закрытием позиции закрыла бы весь вектор атаки. Команда КоинКит продолжает отслеживать адреса злоумышленника.


