Back to Blog

Первичный анализ взлома PolyNetwork

Code Auditing
11 августа 2021 г.
3 min read

Сеть PolyNetwork была взломана, похищено более 300 миллионов долларов США. Атакующий совершил нападение сразу на несколько блокчейнов. В этом блоге мы используем транзакцию атаки в сети Ethereum (0xd8c1f7424593ddba11a0e072b61082bf3d931583cb75f7843fc2a8685d20033a ) для анализа возможных причин взлома. Наш первичный анализ показывает, что одной из вероятных причин может быть либо утечка закрытого ключа, используемого для подписи кросс-чейн сообщений, либо наличие ошибки в процессе подписи PolyNetwork, которой злоумышленник воспользовался для подписи сфабрикованного сообщения.

Отказ от ответственности: Этот блог содержит только результаты нашего первичного анализа, основанного на данных в блокчейне Ethereum. Мы не можем подтвердить наши выводы без дополнительной информации от Poly Network.

Обновление от 12.08.2021: Дополнительная информация показывает, что причиной атаки стало изменение «хранителя» (keeper) злоумышленником (а не утечка закрытого ключа). У нас есть дальнейший анализ, отвечающий на вопрос, каким образом транзакция по смене хранителя вообще могла быть выполнена.

Транзакция и трассировка вызовов

Мы используем нашу систему анализа транзакций для восстановления трассировки.

Злоумышленник -> EthCrossChainManager -> EthCrossChainData -> LockProxy -> managerProxyContractforLockProxy

  • 0xc8a65fadf0e0ddaf421f28feab69bf6e2e589963: Злоумышленник
  • 0x838bf9e95cb12dd76a54c9f9d2e3082eaf928270: EthCrossChainManager
  • 0xcf2afe102057ba5c16f899271045a0a37fcb10f2: EthCrossChainData
  • 0x250e76987d838a75310c34bf422ea9f1ac4cc906: LockProxy
  • 0x5a51e2ebf8d136926b9ca7b59b60464e7c44d2eb: managerProxyContract для LockProxy

Сигнатуры функций:

  • d450e04c (verifyHeaderAndExecuteTx)
  • 69d48074 (getCurEpochConPubKeyBytes)
  • 5ac40790 (getCurEpochStartHeight)
  • 0586763c (checkIfFromChainTxExist)
  • e90bfdcf (markFromChainTxExist(uint64,bytes32))

Основной процесс атаки

Основной процесс атаки заключается в том, что злоумышленник передал подписанные данные функции verifyHeaderAndExecuteTx(). Эта функция декодирует данные и проверяет подписи, которые были использованы для подписания данных. Если процесс проверки проходит успешно, выполняется метод (и адрес контракта), указанный в сообщении. Во время этой атаки для перевода Fei злоумышленнику была вызвана функция unlock смарт-контракта 0x250e76987d838a75310c34bf422ea9f1ac4cc906.

Таким образом, атака стала возможной из-за передачи корректных параметров функции verifyHeaderAndExecuteTx. Эти параметры успешно прошли проверку подписи. После этого транзакция, указанная в сообщении, была выполнена (подобно выполнению произвольных команд в сфере программной безопасности).

Чтобы лучше понять этот процесс, мы восстановили критические значения трассировки вызовов.

Функция: verifyHeaderAndExecuteTx:

verifySig

unlock

Переменная managerProxyContract в LockProxy. Она совпадает со значением адреса вызывающего объекта функции unlock.

Заключение

Исходя из восстановленных значений, мы обнаружили следующее:

  1. Злоумышленник предоставил действительное подписанное сообщение функции verifyHeaderAndExecuteTx.
  2. Модификатор onlyManagerContract в смарт-контракте LockProxy НЕ был обойден.

Основываясь на этих двух наблюдениях, мы предполагаем, что:

  1. Злоумышленник мог обладать законными ключами для подписания сообщений, что указывает на возможную утечку ключей подписи.

Или

  1. В процессе подписи PolyNetwork существует ошибка, которой воспользовались для подписания сфабрикованного сообщения.

Однако у нас нет дополнительных данных вне блокчейна, чтобы подтвердить наши выводы. Мы надеемся, что наш анализ будет полезен для дальнейшего расследования.

Авторы: Юфэн Ху, Сивэй У, Лэй У, Яцзинь Чжоу @BlockSec

Twitter: https://twitter.com/BlockSecTeam

Sign up for the latest updates
Потери около 5,57 млн USD: атаки на X100 Freezer и NEM | Еженедельный обзор BlockSec
Security Insights

Потери около 5,57 млн USD: атаки на X100 Freezer и NEM | Еженедельный обзор BlockSec

Этот еженедельный отчёт охватывает два инцидента безопасности в сетях Ethereum и BNB Chain за период 19.10.2026–25.10.2026. В нём рассматриваются захват управления X100 Freezer, профинансированный с помощью флеш-кредита, и ошибка при расчёте налога, затронувшая пул ликвидности токена NEM в сети BNB Chain. Оценочные потери в рамках отчёта составляют в общей сложности около 5,57 млн USD: ~4,75 млн USD по рассматриваемой транзакции X100 и ~820 тыс. USD в результате инцидента с пулом NEM. В эту сумму не входят отдельно опубликованные данные о последующих выводах средств из X100.

Потери на сумму около 3,87 млн USD: взломы Autheo Network и UNCX | Еженедельный обзор BlockSec
Security Insights

Потери на сумму около 3,87 млн USD: взломы Autheo Network и UNCX | Еженедельный обзор BlockSec

В этом еженедельном отчёте рассматриваются 3 инцидента безопасности за период 12.10.2026–18.10.2026. Общий оценочный ущерб составил около 3,87 млн USD. Ущерб Autheo Network от компрометации закрытого ключа составил примерно 1,76 млн USD, Qubic Wallet потерял примерно 1,30 млн USD из-за ненадёжной генерации seed, а ошибка учёта в контрактах Smart Token Vesting V2 сети UNCX Network на Ethereum, BNB Chain, Base и Robinhood Chain привела к ущербу примерно в 807 тыс. USD. В подробном анализе инцидента UNCX объясняется, как некорректный расчёт совокупного количества долей смешивал транши вестинга, созданные при разных соотношениях токенов и долей, и позволял выводить из общих пулов больше положенного.

Потеряно около $542 тыс.: эксплуатация уязвимости MakerDaoBot | Еженедельный обзор BlockSec
Security Insights

Потеряно около $542 тыс.: эксплуатация уязвимости MakerDaoBot | Еженедельный обзор BlockSec

В Ethereum за 05–11.10.2026 произошёл 1 инцидент; ущерб — около $542 тыс. Атакующий передал вредоносный адаптер функции MakerDaoBot без контроля доступа. Получив права на балансы MakerDAO, адаптер закрыл 4 аукциона ETH-A, конвертировал 200 ETH-A в WETH; атакующий вывел 200 ETH.

Best Security Auditor for Web3

Validate design, code, and business logic before launch. Aligned with the highest industry security standards.

BlockSec Audit