Минувшей ночью 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, которая неверно проверяла доказательства по входящим данным. Эта ошибка и позволила подделывать произвольные сообщения. В общей сложности было подделано два сообщения.


0 комментариев

Добавить комментарий

Avatar placeholder

Ваш адрес email не будет опубликован. Обязательные поля помечены *