MetaMask вышла из валидаторов Lido после взлома инфраструктуры: разбор
Взлом моста Symbiosis: как депозит в 330 сатоши дал выпуск 46,1 млрд syBTC
Кроссчейн-мосты — это место, где чужие ошибки в коде стоят дороже всего, потому что расплачиваются за них не разработчики, а поставщики ликвидности и обычные держатели обёрнутых токенов. 11 сентября 2026 года это правило подтвердилось ещё раз: мост Bitcoin Bridge протокола Symbiosis, который занимается кроссчейн-свопами, был атакован. Мосты остаются самым уязвимым звеном в криптовалютах, и список известных взломов продолжает расти.
Что произошло
11 сентября 2026 года, около 04:28 UTC, был атакован мост Bitcoin Bridge протокола Symbiosis. Серия из 12 транзакций выпуска прошла примерно за 4 минуты. В схеме были задействованы сети Bitcoin, BNB Smart Chain, Ethereum и Rootstock.
Особенность этого моста в том, что в биткоине нет смарт-контрактов. Депозит приходит на адрес-портал, а инструкции лежат в поле данных транзакции. Внесетевой сервис ретрансляторов Symbiosis читал такой депозит и решал, сколько токенов syBTC выпустить в другой сети.
Важный момент: ключ подписи валидаторов (MPC) скомпрометирован не был. Валидаторы подписали выпуск штатно — их собственный декодер счёл сумму законной. То есть подпись была настоящей, а вот смысл того, что она подтверждала, оказался ложным.
Как строка в поле данных превратилась в права администратора
Первая ошибка — про права доступа. Декодер брал ответ на вопрос «кто отправитель» не из самой транзакции, а из поля данных, которое отправитель пишет сам. Это как если бы охранник на входе не проверял пропуск, а просто спрашивал посетителя, кем тот является, и верил ответу на слово.
Атакующий вписал в поле данных идентификатор администратора портала — и получил его полномочия. Не взломал ключи, не подобрал пароль, не обошёл криптографию. Он просто заявил о себе то, что ему было удобно, и система это приняла.
В нормальной схеме права должны определяться подписью транзакции: тот, кто действительно владеет ключом, только он и может действовать от имени адреса. Данные, которые пользователь пишет сам, — это не удостоверение личности, а записка. Доверять записке права администратора нельзя.
Почему комиссия стала подарком
Вторая ошибка — про знак числа. С полученными полномочиями администратора атакующий сделал комиссию портала отрицательной.
Разберём на пальцах. У любого числа есть не только величина, но и знак: плюс или минус. Величина говорит «сколько», знак говорит «в какую сторону». Когда вы вычитаете из баланса расход, знак имеет значение не меньшее, чем сама сумма.
Сумма выпуска считалась в мосте как «депозит минус комиссия» — без проверки, что комиссия не меньше нуля и что выпуск не больше депозита. Пока комиссия положительная, всё логично: 330 − 10 = 320. Но если комиссия отрицательная, вычитание отрицательного числа превращается в сложение: 330 − (−100) = 330 + 100 = 430. Минус на минус даёт плюс.
Именно это и произошло, только в промышленном масштабе. Депозит атакующего составил 330 сатоши (около $0,25). Комиссия — отрицательное число порядка 4,6 квинтиллиона сатоши. Формула послушно сложила одно с другим, и итогом стал выпуск около 46,1 млрд syBTC.
Показательно, что по отдельности ни одна из двух ошибок не привела бы к краже. Без прав администратора нельзя было бы выставить отрицательную комиссию. Без ошибки со знаком даже администраторские полномочия не дали бы возможности выпустить больше, чем внесено. Сработало только сочетание.
И ещё одно наблюдение, которое стоит запомнить: 46,1 млрд syBTC — это номинально больше $46 млрд и примерно в 2000 раз больше, чем вообще может существовать биткоинов. Код не смутило и это.
Почему ущерб не $46 млрд, а $770 тыс.
Цифра в 46,1 млрд syBTC выглядит катастрофой, но реальный ущерб ограничила ликвидность. Выпустить синтетический токен — это одно, а обменять его на что-то ценное — совсем другое.
Во всех пулах с syBTC (в парах с BTCB, WBTC, cbBTC, RBTC) было всего 11,26 syBTC. Столько реальных активов там стояло, и больше атакующий забрать не мог, сколько бы «бумажных» токенов у него ни было на балансе. Потери составили 9,97 BTC, около $770 тыс. (по оценке SlowMist — $775 тыс.).
Через пул Uniswap v4 в сети Ethereum атакующий получил около 4,39 WBTC, обменял их примерно на 137 ETH (около $336 тыс.) и отправил в миксер Tornado Cash.
Здесь и лежит главный практический вывод: для держателя обёрнутых токенов важна не заявленная эмиссия, а то, сколько настоящей ликвидности стоит за ней в пулах. Именно она определяет, чем закончится любой сбой.
Что сделала команда
Реакция Symbiosis была быстрой. Bitcoin Bridge заморожен в течение часа; остальные маршруты (EVM, TRON, TON) не пострадали.
Команда вывела около 15,2 BTC резервов портала на защищённый мультиподписной кошелёк — их атакующий забрать не успел. Отдельно стоит отметить: в части новостей ошибочно писали, что 15 BTC «вернул хакер». Это не так, средства вывела команда.
11 сентября Symbiosis предложила атакующему 20% за возврат средств до 13 сентября — он не ответил; затем те же 20% были предложены любому, кто поможет вернуть деньги. Объявлено о подготовке компенсации поставщикам ликвидности. Мост отключён на переработку кода, а обмен BTC в интерфейсе Symbiosis переведён на сторонние протоколы Chainflip и THORChain, который недавно отказался блокировать похитителей с биржи Bitget.
Чек-лист
Если вы пользуетесь мостами и кроссчейн-свопами
- Узнайте, есть ли у протокола пауза и как быстро её включают: смотрите, отключался ли мост при прошлых инцидентах и за сколько минут.
- Проверьте, есть ли лимиты выпуска и вывода — на одну транзакцию и на период времени.
- Посмотрите, опубликованы ли аудиты и работает ли программа вознаграждений за найденные ошибки.
- Оцените, сколько ликвидности реально стоит в пулах синтетических токенов (syBTC и подобных): именно она определяет размер потерь при сбое.
- Не держите крупные суммы в обёрнутых токенах дольше, чем это нужно для конкретной операции.
Если вы пишете или проверяете такой код
- Проверяйте знак и границы любых числовых параметров: комиссия ≥ 0, выпуск ≤ депозита.
- Берите права только из подписи транзакции, никогда из пользовательских данных.
- Ставьте лимит выпуска на транзакцию и в единицу времени.
- Настраивайте сигнал тревоги на аномальную сумму: выпуск, отличающийся от депозита на порядки, должен останавливать процесс.
История с Symbiosis — не про гениального хакера и не про сломанную криптографию. Это история про две строки кода: одну, где права взяли не из подписи, и вторую, где не проверили знак числа. По отдельности каждая из них выглядит мелочью, вместе они дали выпуск на 46,1 млрд syBTC. Ущерб в $770 тыс. оказался ограничен не защитой протокола, а всего лишь тем, сколько денег лежало в пулах. Проверять знаки, границы и источники прав нужно до того, как это сделает кто-то другой.
Нашли ошибку в тексте? Выделите её мышкой и нажмите Ctrl + Enter
Материал носит информационный характер и не является инвестиционной рекомендацией.
Читать дальше
MetaMask вышла из валидаторов Lido после взлома инфраструктуры: разбор
THORChain отказался блокировать хакеров Bitget: $387 млн уходят в BTC
Взлом Bitget на $352 млн: горячие кошельки и остановка выводов
Комментарии
Комментариев пока нет — будьте первым.