@andreich
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.
Эксплоит был исправлен, денежные средства недвижимы на счету хакера.
Хайлайт разбора взлома взят из твиттер-треда:
https://twitter.com/kelvinfichter/status/1489041221947375616?s=21