Мост Axelar сети Secret Network потерял примерно 4,67 миллиона долларов 10 июня из‑за эксплойта, который не был обнаружен до 17 июня. Согласно постмортему, опубликованному в пятницу блокчейн-исследовательской фирмой Common Prefix, атакующий использовал уязвимость в пользовательском токен-контракте CW20-ICS20, который не проверял, из какого канала поступили входящие трансферы, что позволило создавать незабэкеные (необеспеченные) токены, обёрнутые в Secret. Уязвимость существовала с момента первоначального развёртывания контракта в начале 2023 года, а семидневный разрыв в обнаружении произошёл потому, что в Secret Network стандартное шифрование балансов скрывало на ончейне отсутствие обеспечения.
Эксплойт нацелился на модифицированный контракт CW20-ICS20 в Secret Network, который обрабатывает активы, переброшенные через Axelar. Контракт чеканил секретно-обёрнутые версии активов Axelar, известные как saTokens, не проверяя, из какого канала пришёл входящий трансфер. Атакующий создал цепочку Cosmos с одним валидатором, открыл IBC-канал к контракту моста и саморелейлил поддельные пакеты, несущие номинации токенов, совпадающие со списком разрешённых (allow-list) контракта. Контракт не мог отличить эти номинации от тех, что приходили по легитимному каналу Axelar, и чеканил saTokens против них. Обналичивание (redeeming) отчеканенных балансов обратно по легитимному каналу Axelar высвободило реальные активы, удерживаемые в escrow. Разгрузка затронула семь saTokens: saUSDT, saUSDC, saDAI, saWETH, saWBTC, saWBNB и sawstETH — по данным Common Prefix.
Common Prefix проследила уязвимость до первоначального развёртывания контракта в начале 2023 года. Миграция 5 марта, обновившая байткод для новых функций, перенесла те же отсутствующие проверки дальше, и 10 июня атакой был использован именно этот мигрированный код. В своей публикации на форуме Secret Network заявила, что мостовой контракт был адаптирован из модели escrow в модель mint для интеграции Axelar, и в рамках этой переработки были удалены две функции, которые должны были валидировать источник трансфера. Secret Network добавила, что Axelar не запрашивал внешний аудит в рамках интеграции. Недостача вскрылась 17 июня, когда обычный кроссчейн-трансфер в Axelar завершился ошибкой с указанием, что escrow-счёт больше не удерживает достаточно средств для покрытия. Следователи связали разрыв с семью выводами, сделанными 10 июня.
Экстренный комитет Axelar отключил соединения Secret и Secret‑SNIP после обнаружения, а кроссчейн-роутер Squid удалил Secret из своего фронтенда. Axelar заявила, что её базовый протокол никогда не был затронут, и что другие цепочки, каналы или escrow-счета не трогались. Команда Secret была уведомлена, чтобы остановить и мигрировать затронутый контракт. В последующем посте Axelar указала: «Ни Axelar, ни IBC не были скомпрометированы. Эксплуатируемый токен-смарт‑контракт не был разработан, развёрнут или поддерживался Axelar». Команда подчеркнула, что проблема была не в логике, специфичной для Axelar, и не в самом IBC.
Secret Network сообщила в посте на форуме, что на момент публикации в кошельке атакующего на Axelar всё ещё оставалось около 770 000 долларов украденных средств. Secret Network заявила, что она идентифицировала эти активы, пометила их как подлежащие восстановлению и обратилась к команде Axelar с просьбой заморозить их либо совместно с её сообществом сделать это, «запрос, который Axelar решила не продолжать». Axelar отдельно сообщила, что координируется с биржами и правоохранительными органами и не дала сроки восстановления соединения. Данные Axelarscan, просмотренные The Block, показали, что кошелёк атакующего в Axelar всё ещё удерживал 6,2 WBTC, 239 324 USDC, 64,04 WBNB и 248,85 AXL, что по ценам на момент публикации составляло примерно 672 000 долларов.
Трассировка Common Prefix показывает, что атакующий вывел украденные активы на Axelar, направил их через Osmosis с использованием автоматической переадресации пакетов, затем перебросил в Ethereum и в основном обменял на ether в CoW Protocol. Ether разделили примерно на 30 переводов на новые кошельки, прежде чем он осел в адресах депозитов на KuCoin, ChangeNow и HitBTC. Оба токена показали рост цены за последние 24 часа, несмотря на раскрытие. AXL Axelar вырос примерно на 1,3%, а SCRT Secret — на 5,6% за последние сутки на момент публикации.
Что стало причиной эксплойта моста Secret Network на 4,67 миллиона долларов 10 июня?
Эксплойт произошёл потому, что пользовательский токен-контракт CW20-ICS20 на Secret Network не смог валидировать, из какого канала поступили входящие трансферы. Атакующий создал цепочку Cosmos с одним валидатором, открыл IBC-канал к мостовому контракту и саморелейлил поддельные пакеты, которые контракт принял как легитимные, отчеканив незабэкеные saTokens, а затем их обналичили за реальные активы, удерживаемые в escrow.
Как долго существовала уязвимость до атаки 10 июня?
Common Prefix проследила уязвимость до первоначального развёртывания контракта в начале 2023 года. Миграция 5 марта, обновившая байткод для новых функций, сохранила те же отсутствующие проверки, и атака 10 июня использовала именно этот мигрированный код.
Сколько украденных средств оставалось восстановимым на момент публикации?
Данные Axelarscan, просмотренные The Block, показали, что кошелёк атакующего в Axelar удерживал 6,2 WBTC, 239 324 USDC, 64,04 WBNB и 248,85 AXL, что по ценам на момент публикации составляло примерно 672 000 долларов. Secret Network заявила, что она обратилась к Axelar с просьбой заморозить эти активы, однако Axelar отказалась продолжать этот запрос.
Связанные новости
Starknet запускает приватные переводы для защищённых активов
DriftProtocol запускает проверку токенов для восстановления DFX после взлома 1 апреля
Мост Aztec Private Rollup взломан: украдено активов на $2,15 млн
SlowMist предупреждает: протокол BSC Little Boy Plus был взломан, из него вывели 377642 USDT