​​​​🤓 В Paradigm рассказали как был осуществлен эксплойт BNB Chain


Вчера ночью BNB Chain приостановила свою работу ​​из-за эксплойта. Сумма потерь от атаки составила около $100 млн.

Аналитик из компании Paradigm Сэм Сан поделился информацией о том, как злоумышленнику удалось совершить данный взлом.

По словам Сана неизвестному каким-то образом удалось убедить Binance Bridge отправить 1 миллион BNB на его адрес. Злоумышленнику удалось сделать это дважды.

Сравнив транзакции злоумышленника с выводами средств, Сан заметил, что высота блока, который использовал хакер, всегда была одинаковой — 110,217,401. Однако высота, используемая для законных выводов средств, была намного больше — например 270,822,321.

Аналитик также зафиксировал, что доказательство транзакции злоумышленника было заметно короче, чем доказательство законного вывода средств, а это означает, что хакер нашел способ «подделать доказательство» для конкретного блока — 110,217,401.

У Binance есть специальный контракт на предварительную компиляцию, который используется для проверки деревьев IAVL. Когда пользователь проверяет дерево IAVL, ему необходимо указать список операций. Как уточнил Сан, Binance Bridge обычно ожидает два из них: операцию «iavl:v» и операцию «мультистор».

Однако по сути преступнику удалось использовать ошибку Binance Bridge, которая неверно проверяла доказательства по входящим данным. Такая ошибка и позволила подделывать произвольные сообщения. Всего было подделано два сообщения.