Недавно межсетевой протокол Poly Network подвергся атаке Хакера, что вызвало широкий общественный интерес. После глубокого анализа команда безопасности пришла к выводу, что злоумышленник не использовал утечку приватного ключа keeper для атаки, а воспользовался уязвимостью в контракте.
Принципы атаки
Суть атаки заключается в том, что функция verifyHeaderAndExecuteTx контракта EthCrossChainManager может выполнять определенные кросс-цепочные транзакции через функцию _executeCrossChainTx. Поскольку владельцем контракта EthCrossChainData является контракт EthCrossChainManager, последний может вызывать функцию putCurEpochConPubKeyBytes первого контракта для изменения хранителя контракта.
Атакующий, передавая тщательно подготовленные данные в функцию verifyHeaderAndExecuteTx, заставил функцию _executeCrossChainTx вызвать функцию putCurEpochConPubKeyBytes контракта EthCrossChainData, тем самым изменив роль хранителя на адрес, указанный атакующим. После завершения замены роли хранителя атакующий может произвольно создавать транзакции и извлекать любое количество средств из контракта.
Процесс атаки
Атакующий сначала через функцию verifyHeaderAndExecuteTx контракта EthCrossChainManager вызвал функцию putCurEpochConPubKeyBytes, изменив keeper.
Затем злоумышленник использовал измененные права для проведения серии атакующих транзакций, извлекая средства из контракта.
Из-за изменения keeper, нормальные сделки других пользователей были отклонены.
Этот режим атаки происходит не только на сети BSC, но и в сети Ethereum были зафиксированы аналогичные атаки.
Вывод
Основная причина данного инцидента заключается в том, что keeper контракта EthCrossChainData может быть изменен контрактом EthCrossChainManager, а функция verifyHeaderAndExecuteTx контракта EthCrossChainManager может выполнять данные, введенные пользователем, через функцию _executeCrossChainTx. Злоумышленник использовал этот дефект конструкции, изменив keeper контракта EthCrossChainData с помощью специального набора данных, что в итоге привело к краже средств.
Это событие еще раз подчеркивает важность безопасного проектирования кросс-цепочных протоколов, особенно в отношении управления правами и вызовов функций, которые требуют более строгой проверки и ограничений. Для проектов децентрализованных финансов постоянный аудит безопасности и исправление уязвимостей имеют решающее значение для предотвращения подобных атак.
!
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
18 Лайков
Награда
18
6
Репост
Поделиться
комментарий
0/400
PanicSeller69
· 08-12 04:32
Уязвимость, и всё ещё заниматься DeFi?
Посмотреть ОригиналОтветить0
BearMarketNoodler
· 08-11 11:12
Ещё одна жертва. Предупреждение о бесплатных обучениях.
Посмотреть ОригиналОтветить0
HodlKumamon
· 08-10 15:50
Аааа, как же так плохо сделан QA аудит~
Посмотреть ОригиналОтветить0
AirdropATM
· 08-10 15:49
Действительно, проблемы с уязвимостями контрактов раздражают.
Посмотреть ОригиналОтветить0
TokenCreatorOP
· 08-10 15:46
又被 ликвидирован 啊
Посмотреть ОригиналОтветить0
PoolJumper
· 08-10 15:31
Столько раз обмануты, и контракт все еще смеет говорить о уязвимостях?
Poly Network подвергся атаке Хакера: уязвимость контракта привела к изменению keeper
Анализ инцидента с атакой на Poly Network
Недавно межсетевой протокол Poly Network подвергся атаке Хакера, что вызвало широкий общественный интерес. После глубокого анализа команда безопасности пришла к выводу, что злоумышленник не использовал утечку приватного ключа keeper для атаки, а воспользовался уязвимостью в контракте.
Принципы атаки
Суть атаки заключается в том, что функция verifyHeaderAndExecuteTx контракта EthCrossChainManager может выполнять определенные кросс-цепочные транзакции через функцию _executeCrossChainTx. Поскольку владельцем контракта EthCrossChainData является контракт EthCrossChainManager, последний может вызывать функцию putCurEpochConPubKeyBytes первого контракта для изменения хранителя контракта.
Атакующий, передавая тщательно подготовленные данные в функцию verifyHeaderAndExecuteTx, заставил функцию _executeCrossChainTx вызвать функцию putCurEpochConPubKeyBytes контракта EthCrossChainData, тем самым изменив роль хранителя на адрес, указанный атакующим. После завершения замены роли хранителя атакующий может произвольно создавать транзакции и извлекать любое количество средств из контракта.
Процесс атаки
Атакующий сначала через функцию verifyHeaderAndExecuteTx контракта EthCrossChainManager вызвал функцию putCurEpochConPubKeyBytes, изменив keeper.
Затем злоумышленник использовал измененные права для проведения серии атакующих транзакций, извлекая средства из контракта.
Из-за изменения keeper, нормальные сделки других пользователей были отклонены.
Этот режим атаки происходит не только на сети BSC, но и в сети Ethereum были зафиксированы аналогичные атаки.
Вывод
Основная причина данного инцидента заключается в том, что keeper контракта EthCrossChainData может быть изменен контрактом EthCrossChainManager, а функция verifyHeaderAndExecuteTx контракта EthCrossChainManager может выполнять данные, введенные пользователем, через функцию _executeCrossChainTx. Злоумышленник использовал этот дефект конструкции, изменив keeper контракта EthCrossChainData с помощью специального набора данных, что в итоге привело к краже средств.
Это событие еще раз подчеркивает важность безопасного проектирования кросс-цепочных протоколов, особенно в отношении управления правами и вызовов функций, которые требуют более строгой проверки и ограничений. Для проектов децентрализованных финансов постоянный аудит безопасности и исправление уязвимостей имеют решающее значение для предотвращения подобных атак.
!