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.
Эксплоит был исправлен, денежные средства недвижимы на счету хакера.
Хайлайт разбора взлома взят из твиттер-треда:
Alright. I figured out the Solana x Wormhole Bridge hack. ~300 million dollars worth of ETH drained out of the Wormhole Bridge on Ethereum. Here's how it happened.
— smartcontracts (@kelvinfichter) February 3, 2022
UM v3.01 Деньги на диване, и нейронные сети совсем чуть чуть …