Что нового?

Новости SCAM-технологии: Term Finance - эксплойт управления (~$8,5 млн)

Новости

vitel59

Эксперт
Регистрация
15 Май 2026
Сообщения
798
Реакции
68
Coin
5,162
23 августа DeFi-протокол Term Finance потерял около $8,5 млн из-за атаки на систему управления .

Механика атаки: ключевые уточнения

Стоимость атаки: Согласно отчётам, злоумышленник начал с 2 ETH, полученных через миксер Tornado Cash — это составляло около $7,600 на тот момент. Эта сумма была использована для получения полного контроля над голосованием в четырёх из пяти USDC-хранилищ и ~91% контроля над Ethereum Meta Vault.
Атака не была «взломом кода». Term Labs и Yearn Finance отдельно подчеркнули, что смарт-контракты не были скомпрометированы. Уязвимость находилась в кастомной обёртке управления (custom governance wrapper), которую Term создала поверх стандартной архитектуры Yearn V3. Это означает, что базовые хранилища Yearn остались в безопасности.

Как именно прошла атака

Шаг 1: Захват голосов за копейки
Term использовал opt-out модель управления: предложение проходило, если никто не возражал. Право голоса требовало обёртывания (wrapping) долей в отдельный управляющий токен — дополнительный шаг, который почти никто не делал. Общее предложение обёрнутых токенов в ETH Meta Vault составляло всего 0,5352 токена. Злоумышленник внёс около 0,5 ETH и обернул их, получив ~90,7% всего активного предложения.

Шаг 2: Обнуление задержки
23 августа в 06:25 UTC первое предложение было исполнено. Первые три действия в нём обнулили семидневную задержку модуля Zodiac Delay и передали контроль над ним исполнителю, контролируемому атакующим. Таким образом, механизм защиты был отключён тем же предложением, которое он должен был сдерживать.

Шаг 3: Вывод средств
Остальные действия отозвали капитал из четырёх реальных стратегий ETH Meta Vault — Shorewoods, August Digital, Parity Prime и Parity Core — и направили его в новую стратегию под названием «Fixed Recipient WETH Exit Strategy» (frWETH-EXIT). Эта стратегия вывела WETH из хранилища и переслала всю сумму оператору в том же вызове, оставив Meta Vault с 2 841,74 долями пустой стратегии.

Шаг 4: Повтор для USDC
Двадцать две минуты спустя
второй кошелёк атакующего запустил идентичный сценарий против пяти USDC-хранилищ. Транзакция вывела 1 679 639 USDC, которые позже были обменяны на DAI.

Почему таймлок и вето не сработали

Таймлок — это задержка, а не автоматическая система безопасности. Он даёт время на обнаружение и реакцию, но не решает сам, является ли предложение вредоносным. Защита таймлока зависит от нескольких условий:
  • Видимость: операции в очереди должны быть легко обнаружимы ончейн.
  • Интерпретируемость: пользователи должны понимать, что именно делает предложение.
  • Полномочия на реакцию: должен существовать доверенный guardian или совет, способный отменить операцию.
  • Достаточное время: задержка должна превышать время на обнаружение и координацию.
  • Правильный охват: таймлок должен покрывать опасные действия, а не только рутинные изменения.
В случае Term никто не воспользовался семидневным окном, чтобы остановить поставленные в очередь действия. Либо за очередью никто не следил, либо предложение выглядело безобидным.

Последствия и реакция

Масштаб потерь: Убыток составил ~$8,5 млн — около 68% TVL хранилищ, что практически полностью опустошило Ethereum-хранилища.
Реакция Term Labs:

  • Meta Vaults закрыты навсегда — новые депозиты заблокированы без возможности возобновления.
  • DAO-роли управления отозваны.
  • Вывод средств остаётся открытым, но команда не раскрыла, сколько активов осталось в хранилищах и сколько смогут получить вкладчики.
  • Term заявила, что базовый протокол и прямые рынки кредитования не пострадали.
Позиция Yearn: Term использует инфраструктуру Yearn V3, но эксплойт произошёл через кастомную оболочку управления Term. Yearn заявила, что стандартные хранилища Yearn не затронуты и этот вектор атаки к ним не применим.

Вывод

Term Finance — это пример governance-атаки, где не было взлома кода. Контракты работали именно так, как было задумано. Проблема в том, что управление было спроектировано так, что его можно было захватить за копейки, а механизмы защиты (таймлок и вето) зависели от активного участия, которого не было. Как отметил один из аналитиков: «Это не аргумент против ончейн-управления. Для многих решений молчание — разумное значение по умолчанию. Но для решений о перемещении активов это неправильное значение по умолчанию».
 
Показательный кейс того, что governance-риск ничуть не слабее обычного смарт-контрактного риска. Тут даже особенно неприятно, что для захвата хватило не какого-то огромного капитала, а буквально копеечной суммы относительно TVL — просто потому что почти никто не участвовал в обёртывании и голосовании.

Самое слабое место тут, похоже, именно opt-out модель для действий, связанных с перемещением активов. Когда “молчание = ок” работает для рутинных параметров — ещё можно спорить. Когда этим же способом можно выключить delay, перехватить контроль и вывести средства — это уже архитектурная ошибка, а не “пользователи не досмотрели”.

Ещё важный момент: таймлок сам по себе не защита, если нет нормального мониторинга, понятного декодинга queued-действий и живого guardian-механизма. Иначе это просто таймер до эксплойта.

Для Yearn, кстати, эта история даже в каком-то смысле репутационно полезна: лишний раз видно, что проблема была не в V3 как таковом, а в кастомной надстройке. Очень частая история в DeFi — базовый примитив нормальный, а ломается именно “бизнес-логика поверх”.

Вывод очень простой: если governance может двигать пользовательские активы, то passive governance почти всегда мина замедленного действия. Тут нужен либо opt-in/кворум, либо жёсткое разделение полномочий, либо отдельный emergency veto, который нельзя отключить тем же самым предложением. Иначе вопрос не “возможно ли”, а “когда заметят”.
 
Сверху Снизу