Poly Network зазнав нападу хакера: технічна уразливість призвела до крадіжки коштів
Протокол міжмережевої взаємодії Poly Network нещодавно зазнав атаки Хакерів, що викликало широкий інтерес у галузі. За аналізом безпекової команди, ця атака не сталася через витік приватного ключа keeper, а через використання вразливостей контракту, шляхом створення специфічних даних, які змінили адресу keeper контракту EthCrossChainData.
Деталі атаки
Атака полягає в тому, що в функції verifyHeaderAndExecuteTx контракту EthCrossChainManager можна виконати кроссчейн-транзакцію через функцію _executeCrossChainTx.
Власником контракту EthCrossChainData є контракт EthCrossChainManager, який може викликати функцію putCurEpochConPubKeyBytes першого для зміни keeper.
Атакуючий передає ретельно сформовані дані через функцію verifyHeaderAndExecuteTx, змушуючи функцію _executeCrossChainTx викликати функцію putCurEpochConPubKeyBytes контракту EthCrossChainData, змінюючи роль keeper на адресу, зазначену атакуючим.
Завершивши заміну адреси keeper, зловмисник може довільно створювати транзакції та витягувати кошти з контракту.
Процес атаки
Зловмисник спочатку викликає функцію putCurEpochConPubKeyBytes через функцію verifyHeaderAndExecuteTx контракту EthCrossChainManager, щоб змінити keeper.
Після цього зловмисник здійснив кілька атакуючих транзакцій, щоб витягти кошти з контракту.
Після завершення атаки, через те, що keeper був змінений, звичайні транзакції інших користувачів були скасовані.
Атакуючий також здійснив подібні дії в мережі Ethereum, змінивши keeper та здійснивши атаку.
!
Підсумок
Ця атака, в основному, використовувала вразливість, що дозволяє контракту EthCrossChainManager змінювати keeper контракту EthCrossChainData. Зловмисник через функцію verifyHeaderAndExecuteTx передав ретельно сконструйовані дані, змінивши keeper контракту EthCrossChainData на адресу, яку він контролює, отримавши таким чином права на вилучення коштів. Ця подія ще раз підкреслила важливість аудиту безпеки смарт-контрактів, а також необхідність більш обережного розгляду різних потенційних ризиків при проектуванні кросчейн-протоколів.
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
18 лайків
Нагородити
18
4
Поділіться
Прокоментувати
0/400
ColdWalletGuardian
· 7год тому
Знову отримав по чорному...
Переглянути оригіналвідповісти на0
LiquidatedNotStirred
· 7год тому
Знову бачимо крах контракту
Переглянути оригіналвідповісти на0
governance_ghost
· 8год тому
Смішно, що код є сутністю rug.
Переглянути оригіналвідповісти на0
CompoundPersonality
· 8год тому
Ще одна нова вразливість? Розробники можуть бути більш стабільними.
Poly Network зазнав атаки Хакера: вразливість контракту призвела до зміни keeper
Poly Network зазнав нападу хакера: технічна уразливість призвела до крадіжки коштів
Протокол міжмережевої взаємодії Poly Network нещодавно зазнав атаки Хакерів, що викликало широкий інтерес у галузі. За аналізом безпекової команди, ця атака не сталася через витік приватного ключа keeper, а через використання вразливостей контракту, шляхом створення специфічних даних, які змінили адресу keeper контракту EthCrossChainData.
Деталі атаки
Атака полягає в тому, що в функції verifyHeaderAndExecuteTx контракту EthCrossChainManager можна виконати кроссчейн-транзакцію через функцію _executeCrossChainTx.
Власником контракту EthCrossChainData є контракт EthCrossChainManager, який може викликати функцію putCurEpochConPubKeyBytes першого для зміни keeper.
Атакуючий передає ретельно сформовані дані через функцію verifyHeaderAndExecuteTx, змушуючи функцію _executeCrossChainTx викликати функцію putCurEpochConPubKeyBytes контракту EthCrossChainData, змінюючи роль keeper на адресу, зазначену атакуючим.
Завершивши заміну адреси keeper, зловмисник може довільно створювати транзакції та витягувати кошти з контракту.
Процес атаки
Зловмисник спочатку викликає функцію putCurEpochConPubKeyBytes через функцію verifyHeaderAndExecuteTx контракту EthCrossChainManager, щоб змінити keeper.
Після цього зловмисник здійснив кілька атакуючих транзакцій, щоб витягти кошти з контракту.
Після завершення атаки, через те, що keeper був змінений, звичайні транзакції інших користувачів були скасовані.
Атакуючий також здійснив подібні дії в мережі Ethereum, змінивши keeper та здійснивши атаку.
!
Підсумок
Ця атака, в основному, використовувала вразливість, що дозволяє контракту EthCrossChainManager змінювати keeper контракту EthCrossChainData. Зловмисник через функцію verifyHeaderAndExecuteTx передав ретельно сконструйовані дані, змінивши keeper контракту EthCrossChainData на адресу, яку він контролює, отримавши таким чином права на вилучення коштів. Ця подія ще раз підкреслила важливість аудиту безпеки смарт-контрактів, а також необхідність більш обережного розгляду різних потенційних ризиків при проектуванні кросчейн-протоколів.