• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Поставил нолик - похитил $190 миллионов

вавилонец

CPU register
Пользователь
Регистрация
17.06.2021
Сообщения
1 116
Реакции
1 265
Оригинальная статья
Переведено специально для xss.pro
Камнями кидать - Jolah Milovski

"1 августа 2022 года на мосту Nomad произошел эксплойт, в результате которого были потеряны активы на сумму 190 миллионов долларов. Уязвимость вызвана тем, что для параметра «committedRoot» установлено значение 0 во время инициализации."

Nomad Bridge — это кросс-чейн-платформа криптовалюты блокчейн, которая поддерживает передачу активов между блокчейнами в Ethereum, Moonbeam, Avalanche, Evmos и Milkomeda. 1 августа 2022 года на Nomad Bridge произошел эксплойт, в результате которого были потеряны активы на сумму 190 миллионов долларов. Уязвимость вызвана тем, что для параметра «committedRoot» установлено значение 0 во время инициализации. Таким образом, злоумышленник может обойти процесс проверки сообщения и украсть токены из кроссчейн-контрактов.

Введение в Nomad Bridge​

Nomad Bridge — это межсетевой протокол криптовалюты блокчейна, который позволяет пользователям передавать активы между различными блокчейнами. Кроме того, эмитенты активов также могут развертывать токены в разных цепочках, а разработчики также могут создавать нативные межсетевые приложения через Nomad. Цель Nomad — обеспечить безопасное взаимодействие пользователей и разработчиков. Nomad поддерживает передачу токенов между Avalanche (AVAX), Ethereum (ETH), Evmos (EVMOS), Milkomeda C1 и Moonbeam (GLMR).

Анализ событий эксплуатации уязвимостей​

1 августа мост Nomad подвергся уязвимости в процессе обновления. Уязвимость вызвана тем, что в процессе инициализации для параметра «committedRoot» установлено значение 0. Злоумышленники могут обойти процесс проверки сообщения и злоупотреблять транзакциями копирования/вставки для запуска атак. В частности, пользователь копирует данные вызова исходной хакерской транзакции и заменяет их исходным адресом человека. Затем транзакция обрабатывается, и средства удаляются с моста Nomad. В течение четырех часов хакеры, боты и другие члены сообщества продолжали повторять атаки и сумели украсть почти все средства моста Nomad на общую сумму около 190 миллионов долларов.

Рассмотр атаки:​


Ethereum получает перевод 100 WBTC 0xa5fe9

1660021414752.png


Несколько транзакций атаки:

1660021444965.png


Вот так вот это все произошло:

Возьмем транзакцию 0xa5fe9 в качестве примера.

В процессе вызывается функция acceptRoot(messages[_messageHash]), которая используется для проверки "отправлен" ли рут и не истек ли таймаут. В этом примере messages[_messageHash] равен 0x000.

1660021582320.png


Функция acceptRoot(messages[_messageHash]) возвращает true, и сообщение подтверждается. При инициализации он установлен на 0x0000

1660021653059.png



После того, как сообщение "протолкнется в блокчейн", злоумышленник может перевести деньги в другие сети
Контракт реплики был неправильно инициализирован в транзакции 0x53fd9, где «committedRoot» был инициализирован равным 0.
Таким образом, злоумышленник может напрямую вызвать функцию «process(byte memory _message)» с любым «_message» для обхода проверки.
Адрес контракта: 0x88a69
Эта функция обеспечивает проверку проверки хэша сообщения.
1660021846643.png


Эта функция проверяет, аттестован, обработан и подтвержден ли root.

1660021895476.png


В транзакции инициализации 0x53fd9 владелец отправляет 0, и confirmAt[_committedRoot] устанавливаются в 1.

1660021976530.png


1660022090964.png


Поэтому 0 будет проверяться по адресу 0xb9233.
В соответствии с реализацией функции доказательства корень неподтвержденного сообщения также равен 0, поэтому 0 считается действительным подтвержденным корнем и может обойти проверку. Злоумышленнику нужно только отправить транзакцию в Nomad Bridge, чтобы получить соответствующий токен.

1660022168282.png


Отслеживание активов​

Всего с Nomad Bridge было переведено токенов на сумму около 190 миллионов долларов.

1660022194356.png
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх