Solana Wormhole мост хакнули на $300М. Как это произошло?


Solana Wormhole мост хакнули на $300М. Как это произошло?

12 часов назад одной транзакцией было перемещено 80к эфира на адрес злоумышленника:
https://etherscan.io/tx/0x24c7d855a0a931561e412d809e2596c3fd861cc7385566fd1cb528f9e93e5f14

На счету эксплоитера сейчас 93 750 ETH, рассмотрим хронику событий:

https://etherscan.io/address/0x629e7da20197a5429d30da36e77d06cdf796b71a

Транзакция, которая вывела 80 000 ETH, на самом деле была переводом 80 000 ETH из Соланы в Ethereum.

Первый эксплоит произошел благодаря транзакции на Солане, которая наминтила из ниоткуда 120 000 «wormhole ETH»:

https://solscan.io/tx/2zCz2GgSoSS68eNJENWrYB48dMM1zmH8SZkgYneVDv2G4gRsVfwu5rNXtK5BKFxn7fSqX9BvrBc1rdPAeBEcD6Es

Злоумышленник вначале смог создать на стороне Соланы wormhole ETH, а затем смог корректно воспользоваться мостом, чтобы снять ETH с депозитного контракта Wormhole сети ETH.

Транзакция, которая произвела минт имела функцию complete_wrapped. Одним из параметров, которые принимает эта функция, является «transfer message», в основном сообщение, подписываемое гардианами (защитниками моста), в котором говорится, какой токен чеканить и в каком количестве.

Исполнение смарт-контрактов на Солане необычное, поэтому этот параметр там является самостоятельным смарт-контрактом.

Этот контракт с функцией «transfer message» триггерит функцию «post_vaa».

«post_vaa» функция не проверяет подписи. Вместо этого, в типичном солана стиле — другой смарт-контракт вызывает функцию смарт-контракта «verify_signatures».

Неправильное использование уязвимости данного смарт-контракта привели к возможности подменить системный адрес, отвечающий за проверку достоверности депозита на стороне Соланы эфира и в результате позволило злоумышленнику из воздуха чеканить кучу необеспеченных wormhole ETH.

Эксплоит был исправлен, денежные средства недвижимы на счету хакера.

Хайлайт разбора взлома взят из твиттер-треда:

UM v3.01 Деньги на диване, и нейронные сети совсем чуть чуть …