Кросс-чейн протокол Maya Protocol потерял около 1,7 миллиона долларов и остановил торги. Атакующему хватило одной транзакции из 23 сообщений, чтобы последовательно запустить шесть ошибок в коде — каждая по отдельности выглядела безобидно.

Коротко: что произошло

Атака случилась 18 августа около 17:30 UTC. Это первый крупный инцидент с потерей средств у протокола с момента запуска основной сети в апреле 2023 года.

Подтверждённый вывод на внешние сети — примерно 1,36 миллиона долларов, в основном 20,83 биткоина на сумму около 1,34 миллиона. Ещё около 8,87 миллиона токенов CACAO осталось у атакующего внутри сети — по обвалившимся ценам это порядка 288 тысяч долларов.

Собственный токен протокола рухнул с 0,115 до 0,013 доллара — почти на 89%, — затем частично отыграл до трёх центов, когда выведенные средства пошли через пулы ликвидности.

Как сработала цепочка из шести ошибок

Звено Что произошло
1. Пакетная транзакция 23 сообщения о депозитах в одной операции
2. Перезапись сообщений Учёт транзакций нарушился
3. Ложное срабатывание защиты Система решила, что происходит кража
4. Расчёт штрафа без ограничения Санкция посчиталась без верхнего предела
5. Сохранение раздутого баланса Значение записалось до того, как операция не прошла
6. Неудачный откат Баланс остался завышенным

Дальше просто: средства ушли из внешних хранилищ раньше, чем контроль платёжеспособности и механизм остановки успели перекрыть поток.

Как отреагировала команда

Автоматика остановила торги на 720 блоков — около часа, — заморозив депозиты и выводы в затронутых пулах. Флаги остановки цепочки включили сразу после инцидента.

Сооснователь проекта под ником Aaluxx подтвердил взлом, поблагодарил операторов узлов и пообещал возместить потери полностью. Атакующему предложили вознаграждение как «белому хакеру» и публичное раскрытие уязвимости в обмен на возврат средств.

Среди рассматриваемых мер — заморозка оставшихся CACAO, попытка вернуть биткоины и, как крайний вариант, откат состояния сети с согласия валидаторов. Полного технического разбора на момент публикации не было: как именно атакующий обошёл контроль платёжеспособности и ограничители вывода, ещё не описано.

Почему аудиты этого не поймали

Насколько я это вижу, здесь важнее всего не сумма, а то, что уязвимости прошли через две независимые аудиторские проверки и остались незамеченными.

Причина в природе самой атаки. Аудит хорошо ловит опасный фрагмент кода: неверную проверку прав, ошибку округления, отсутствующий лимит. Но здесь каждый отдельный шаг был почти корректен, а провал возник на стыке — когда защитный механизм ошибочно срабатывает, второй считает штраф без потолка, а третий не может корректно откатить состояние.

Такие сценарии ловятся не чтением кода, а моделированием состояний: что будет, если соединить два десятка сообщений в одной операции и заставить систему обрабатывать их не в том порядке, на который рассчитывал автор. Процедура дорогая, и её обычно откладывают. О том, почему взломы бьют рекорды несмотря на аудиты, мы писали отдельно.

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

Что с откатом сети

Вариант с откатом состояния — самый спорный пункт плана. Он технически возможен, но означает, что валидаторы соглашаются переписать уже подтверждённую историю. Недавний прецедент есть: после августовской атаки Harmony пошла на откат, стерев 109 тысяч операций.

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

Остановка сервиса, впрочем, случается и без взлома: недавно сервис свопов закрылся под нагрузкой ботов, хотя средства уцелели.

Частые вопросы

Сколько потерял Maya Protocol?

Около 1,7 миллиона долларов с учётом активов внутри сети. Подтверждённый вывод на внешние блокчейны — примерно 1,36 миллиона, в основном 20,83 BTC.

Что случилось с токеном CACAO?

Он упал с 0,115 до 0,013 доллара, почти на 89%, затем частично восстановился до уровня около трёх центов.

Как остановили атаку?

Сработал автоматический механизм: торги встали на 720 блоков, примерно на час, депозиты и выводы в затронутых пулах заморозили.

Вернут ли деньги пользователям?

Сооснователь пообещал возместить потери полностью. Конкретный механизм и сроки не объявлены.

Почему аудиты не нашли проблему?

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

Возможен ли откат сети?

Он рассматривается как один из вариантов возврата средств и потребует согласия валидаторов. Решение не принято.

Источники

Материал подготовлен на основе публикаций The Crypto Times и Coin Gabbar.