Poolz зазнав атаки переповнення арифметики, втрати близько 66,5 тисячі доларів
Нещодавно проєкт Poolz на мережах Ethereum, Binance та Polygon зазнав хакерської атаки, що призвела до значних втрат. Згідно з даними на блокчейні, атака сталася 15 березня 2023 року і торкнулася кількох токенів, загальна вартість яких становила близько 665 000 доларів.
Зловмисник використав вразливість переповнення арифметичних операцій у контракті Poolz для здійснення цієї атаки. Основна проблема виникла у функції CreateMassPools, яка дозволяє користувачам масово створювати ліквідні пули та надавати початкову ліквідність. Зловмисник, шляхом ретельно продуманих вхідних параметрів, змусив функцію getArraySum викликати переповнення, внаслідок чого в системі було зафіксовано величезне значення, хоча було переведено лише 1 токен.
Процес атаки такий:
Зловмисник спочатку обміняв деякі токени MNZ через децентралізовану біржу.
Потім викликається функція CreateMassPools, використовуючи вразливість функції getArraySum. Ця функція при підсумовуванні масиву _StartAmount, введеного користувачем, повертає 1 через переповнення, хоча фактичне зафіксоване значення є значно більшим.
Нарешті, зловмисник, викликавши функцію withdraw, вивів кошти, завершивши весь процес атаки.
Ця подія знову підкреслила серйозність проблеми арифметичного переповнення в смарт-контрактах. Щоб уникнути подібних проблем, розробники повинні розглянути можливість використання новіших версій компілятора Solidity, які автоматично виконують перевірку переповнення під час компіляції. Для проектів, що використовують ранні версії Solidity, можна скористатися сторонніми бібліотеками безпеки для вирішення проблеми переповнення цілих чисел.
Ця атака також нагадує нам про те, що при роботі з розумними контрактами, які потребують великої обчислювальної потужності, необхідно бути особливо обережними, щоб забезпечити належну обробку всіх можливих крайових ситуацій. Водночас регулярний аудит безпеки та програми винагород за вразливості також є ефективними заходами для забезпечення безпеки проєкту.
Переглянути оригінал
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
11 лайків
Нагородити
11
6
Поділіться
Прокоментувати
0/400
TokenGuru
· 22год тому
Ой, старий проєкт також провалився, терміново зупиняйте перекази, не вкладайте монети, увійдіть в позицію.
Poolz зазнав атаки через переповнення арифметичних операцій, втратили 66500 доларів США.
Poolz зазнав атаки переповнення арифметики, втрати близько 66,5 тисячі доларів
Нещодавно проєкт Poolz на мережах Ethereum, Binance та Polygon зазнав хакерської атаки, що призвела до значних втрат. Згідно з даними на блокчейні, атака сталася 15 березня 2023 року і торкнулася кількох токенів, загальна вартість яких становила близько 665 000 доларів.
Зловмисник використав вразливість переповнення арифметичних операцій у контракті Poolz для здійснення цієї атаки. Основна проблема виникла у функції CreateMassPools, яка дозволяє користувачам масово створювати ліквідні пули та надавати початкову ліквідність. Зловмисник, шляхом ретельно продуманих вхідних параметрів, змусив функцію getArraySum викликати переповнення, внаслідок чого в системі було зафіксовано величезне значення, хоча було переведено лише 1 токен.
Процес атаки такий:
Зловмисник спочатку обміняв деякі токени MNZ через децентралізовану біржу.
Потім викликається функція CreateMassPools, використовуючи вразливість функції getArraySum. Ця функція при підсумовуванні масиву _StartAmount, введеного користувачем, повертає 1 через переповнення, хоча фактичне зафіксоване значення є значно більшим.
Нарешті, зловмисник, викликавши функцію withdraw, вивів кошти, завершивши весь процес атаки.
Ця подія знову підкреслила серйозність проблеми арифметичного переповнення в смарт-контрактах. Щоб уникнути подібних проблем, розробники повинні розглянути можливість використання новіших версій компілятора Solidity, які автоматично виконують перевірку переповнення під час компіляції. Для проектів, що використовують ранні версії Solidity, можна скористатися сторонніми бібліотеками безпеки для вирішення проблеми переповнення цілих чисел.
Ця атака також нагадує нам про те, що при роботі з розумними контрактами, які потребують великої обчислювальної потужності, необхідно бути особливо обережними, щоб забезпечити належну обробку всіх можливих крайових ситуацій. Водночас регулярний аудит безпеки та програми винагород за вразливості також є ефективними заходами для забезпечення безпеки проєкту.