Эксплойт Verus Ethereum Bridge: та же уязвимость на $11,58 млн

18 мая 2026 года некто опустошил мост Verus-Ethereum на 11,58 миллиона долларов. По данным репортажа CoinDesk, это был восьмой взлом моста за год. Эксплойт моста Verus Ethereum не задействовал никакого экзотического нового класса атак. Это тот же сбой, который убивает мосты с 2021 года: контракт освобождал средства в одной сети, не проверив должным образом, что произошло в другой.
На этот раз у уязвимой функции было имя. checkCCEValues. Это та самая подпрограмма, которая должна была подтверждать соответствие значений кросс-чейн экспорта реальным данным перед минтингом или выдачей средств на стороне Ethereum. Она не справилась со своей задачей, и злоумышленник ушёл с деньгами.
Я четыре года строил инфраструктуру, смежную с мостами, в регулируемой среде, и удручает то, насколько предсказуемым это стало. Мы продолжаем переименовывать одну и ту же рану.
Эксплойт моста Verus Ethereum был сбоем валидации источника
Уберите брендинг, и каждый мост делает одно и то же. Он отслеживает событие в сети A (депозит, блокировку, экспорт) и производит соответствующее действие в сети B (минтинг, разблокировку, выдачу). Вся модель безопасности сводится к одному вопросу: действительно ли сеть B верит тому, что сообщила ей сеть A, и проверила ли она это?
Когда валидация, подтверждающая суммы на стороне источника, работает неверно, ответ становится «нет». Злоумышленник подделывает или завышает заявленное значение экспорта, целевой контракт доверяет ему, и токены, не подкреплённые реальными активами, минтятся или освобождаются. The Block сообщил, что потери составили около 11,58 миллиона долларов, выведенных именно через такой разрыв в учёте при проверке кросс-чейн экспорта.
Это валидация суммы источника в мосте, и это самая критически важная функция во всей системе. Допустите ошибку в одном сравнении, и мост превратится в бесплатный печатный станок.
checkCCEValues: просто новое название старой уязвимости
Уязвимость checkCCEValues структурно идентична ошибкам, которые уже обошлись отрасли в миллиарды долларов. Названия меняются. Механизм остаётся прежним.
- Wormhole, 2022: брешь в проверке подписей позволила злоумышленнику выпустить 120 000 wrapped ETH, которые никогда не были задепонированы.
- Nomad, 2022: некорректная инициализация корня дерева Меркла привела к тому, что любое сообщение проходило валидацию как истинное, а мост в итоге буквально скопировали и разграбили толпой.
- Multichain, 2023: ключи и допущения о доверии, которые никто снаружи не мог реально проверить.
В основе каждого из этих случаев лежало одно и то же: сеть назначения высвобождала средства без достаточного доказательства исходного события. В 2026 году то же самое явление называется checkCCEValues.
Отрасль, на мой взгляд, продолжает воспринимать эти случаи как отдельные инженерные ошибки, тогда как перед нами системный сбой целой категории. Категорию не исправить, аудируя одну функцию тщательнее обычного.
Tornado Cash профинансировал атакующего: это многое говорит о намерениях
Кошелёк атакующего был пополнен через Tornado Cash ещё до эксплойта. Этот факт важен не столько для атрибуции, сколько для понимания степени подготовки. Это не был вайтхет, случайно наткнувшийся на уязвимость в контракте. Схема «атакующий, финансируемый через Tornado Cash», является характерным признаком человека, который за несколько дней выстроил оперативное прикрытие и заранее рассчитывал на необходимость отмывания средств при выводе.
Именно этот аспект защитники недооценивают. К моменту проведения транзакции с эксплойтом маршрут вывода средств уже готов. Ретроспективная трассировка помогает прокурорам, но практически ничего не даёт протоколу, который только что потерял восьмизначную сумму.
Провалы безопасности мостов стали ежемесячным налогом
Если взглянуть шире, взлом Verus — это просто строчка в списке, а не исключение. По данным PeckShield, на которые ссылается Bitcoin.com, только за май 2026 года эксплойты криптовалютных мостов суммарно составили около 328 миллионов долларов. Восемь инцидентов с мостами менее чем за пять месяцев года.
Рынок молча принял это как неизбежную издержку кросс-чейн-бизнеса. Это неверный вывод. Регулярные девятизначные ежемесячные потери -- это не волатильность, а структурный дефект, который участники рынка не желают признавать.
Для тех, кто перемещает реальные ценности, вывод неудобен: большинство мостов -- это доверительные допущения, наряженные в математический костюм. Я уже писал об этом в How Stablecoin Bridges Actually Fail: самый безопасный мост нередко тот, который честно признаёт, как мало он на самом деле проверяет.
Как должна выглядеть по-настоящему надёжная проверка моста
Если вы разрабатываете или аудируете мост, именно валидации исходной суммы стоит уделить непропорционально большое внимание. Несколько вещей, которые я считаю обязательными:
- Контракт назначения должен проверять криптографическое доказательство исходного события, а не полагаться на слово ретранслятора. Доказательства на основе лёгких клиентов или zk-доказательства вместо мультисиг-аттестаций -- везде, где позволяет бюджет задержки.
- Проверки суммы должны охватывать каждый путь выполнения без исключений. Класс ошибок
checkCCEValuesобычно скрывается в ветке, которую часть входных данных просто обходит. Фаззингуйте сравнение, не проверяйте его на глаз. - Лимиты и автоматические предохранители на каждый актив, чтобы поддельное значение не могло опустошить весь резерв за одну транзакцию. Ограничение с автопаузой на уровне, скажем, 5% TVL в час смягчило бы большинство инцидентов 2026 года.
- Независимый мониторинг инвариантов, который в реальном времени следит за соотношением общего объёма в обращении и заблокированных средств и останавливает работу при расхождении.
Ничего принципиально нового здесь нет. Инструментарий для выявления этих проблем существует -- я подробнее разбирал его в материале про стек аудита. Проблема в том, что мосты раз за разом отправляют валидацию в список «сделаем потом», а не строят вокруг неё продукт.
Следующий взлом моста в 2026 году уже пишется. У него будет другое имя функции и та же первопричина, и мы снова сделаем удивлённый вид. Не стоит.