Проект Poolz зазнав безпекової вразливості, близько 665 тисяч доларів активів постраждало
Нещодавно безпековий інцидент, що стався з крос-чейн проектом Poolz, привернув увагу галузі. Згідно з даними моніторингу безпеки блокчейну, в ніч з 15 березня на Poolz на платформах Ethereum, BNB Chain та Polygon відбувся напад на смарт-контракти, що призвело до пошкодження різних токенів, загальна вартість яких становить приблизно 66,5 тисяч доларів.
Ця подія стосується кількох токенів, включаючи MEE, ESNC, DON, ASW, KMON, POOLZ тощо. Зловмисники скористалися вразливістю арифметичного переповнення в смарт-контракті, успішно маніпулюючи процесом створення токенних пулів. На даний момент частина вкрадених активів вже була обміняна на BNB, але ще не була переведена з адреси зловмисника.
Зловмисники в основному скористалися вразливістю функції CreateMassPools в контракті Poolz. Ця функція спочатку була призначена для масового створення токен-пулів та забезпечення початкової ліквідності, але в ній існує проблема переповнення цілого числа у функції getArraySum. Зловмисники, використовуючи ретельно сконструйовані вхідні параметри, змусили результат накопичення перевищити межі типу uint256, що призвело до серйозного розриву між фактично переведеними токенами та зафіксованою кількістю.
Ця уразливість дозволяє зловмисникам вводити невелику кількість токенів, щоб зафіксувати в системі велику кількість залишків токенів. Потім зловмисники викликають функцію withdraw, щоб вивести ці фальшиві записані токени, завершуючи весь процес атаки.
Подібні проблеми з переповненням арифметичних операцій не є рідкістю під час розробки смарт-контрактів. Для запобігання подібним ризикам розробники повинні використовувати новіші версії мови програмування Solidity, які під час компіляції автоматично виконують перевірки на переповнення. Для проектів, що використовують старіші версії Solidity, рекомендується впроваджувати бібліотеку SafeMath від OpenZeppelin для обробки цілочисельних операцій, щоб уникнути ризиків переповнення.
Ця подія ще раз нагадує проектам у сфері блокчейн та розробникам, що під час проектування та реалізації смарт-контрактів необхідно особливо звертати увагу на безпеку. Водночас це підкреслює важливість регулярного проведення аудиту безпеки та програм винагород за вразливості для раннього виявлення та виправлення потенційних загроз безпеці.
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
15 лайків
Нагородити
15
4
Поділіться
Прокоментувати
0/400
SignatureVerifier
· 23год тому
smh... ще один підручниковий випадок недостатньої валідації введення
Poolz зазнав атаки від хакера, активи на суму 66,5 тисяч доларів США постраждали.
Проект Poolz зазнав безпекової вразливості, близько 665 тисяч доларів активів постраждало
Нещодавно безпековий інцидент, що стався з крос-чейн проектом Poolz, привернув увагу галузі. Згідно з даними моніторингу безпеки блокчейну, в ніч з 15 березня на Poolz на платформах Ethereum, BNB Chain та Polygon відбувся напад на смарт-контракти, що призвело до пошкодження різних токенів, загальна вартість яких становить приблизно 66,5 тисяч доларів.
Ця подія стосується кількох токенів, включаючи MEE, ESNC, DON, ASW, KMON, POOLZ тощо. Зловмисники скористалися вразливістю арифметичного переповнення в смарт-контракті, успішно маніпулюючи процесом створення токенних пулів. На даний момент частина вкрадених активів вже була обміняна на BNB, але ще не була переведена з адреси зловмисника.
Зловмисники в основному скористалися вразливістю функції CreateMassPools в контракті Poolz. Ця функція спочатку була призначена для масового створення токен-пулів та забезпечення початкової ліквідності, але в ній існує проблема переповнення цілого числа у функції getArraySum. Зловмисники, використовуючи ретельно сконструйовані вхідні параметри, змусили результат накопичення перевищити межі типу uint256, що призвело до серйозного розриву між фактично переведеними токенами та зафіксованою кількістю.
Ця уразливість дозволяє зловмисникам вводити невелику кількість токенів, щоб зафіксувати в системі велику кількість залишків токенів. Потім зловмисники викликають функцію withdraw, щоб вивести ці фальшиві записані токени, завершуючи весь процес атаки.
Подібні проблеми з переповненням арифметичних операцій не є рідкістю під час розробки смарт-контрактів. Для запобігання подібним ризикам розробники повинні використовувати новіші версії мови програмування Solidity, які під час компіляції автоматично виконують перевірки на переповнення. Для проектів, що використовують старіші версії Solidity, рекомендується впроваджувати бібліотеку SafeMath від OpenZeppelin для обробки цілочисельних операцій, щоб уникнути ризиків переповнення.
Ця подія ще раз нагадує проектам у сфері блокчейн та розробникам, що під час проектування та реалізації смарт-контрактів необхідно особливо звертати увагу на безпеку. Водночас це підкреслює важливість регулярного проведення аудиту безпеки та програм винагород за вразливості для раннього виявлення та виправлення потенційних загроз безпеці.