Нещодавно команда Дедауба виявила вразливість у контрактах UniSwap, яка могла поставити під загрозу деяких користувачів.
Уразливість UniSwap
У нещодавньому твіті Dedaub повідомив, що вони виявили помилку в контрактах UniSwap і повідомили їх про вразливість. Коли відгук був отриманий, «UniSwap вирішила проблему та повторно розгорнула смарт-контракти Universal Router у всіх своїх мережах».
Згідно з твітом Дедауба, ця вразливість проклала шлях для атак повторного входу, які виснажували б кошти користувачів. Команда Dedaub пояснила, як зловмисники використають цю вразливість.
Ми дякуємо команді @Uniswap за винагороду за помилку. Подальше читання: https://t.co/Jj2Sl2f1cQ
— Дедауб (@dedaub) 2 січня 2023 р
Народження цієї вразливості бере свій початок у листопаді, коли UniSwap представила свій універсальний маршрутизатор. Цей маршрутизатор об’єднує обмін NFT і ERC-20 в один маршрутизатор обміну. Мета полягала в тому, щоб допомогти користувачам виконувати кілька дій, наприклад обмінювати кілька NFT і токенів в одній транзакції.
При правильному використанні команди універсального маршрутизатора надішлють вказану суму вказаному одержувачу. Однак, якщо під час передачі викликається код третьої сторони, він може повторно ввійти в маршрутизатор і вимагати токени в контракті. Це головним чином через те, що універсальний маршрутизатор зберігав баланс між транзакціями.
У своєму доказі концепції команда Dedaub зазначила, що зловмисник може додати команду SWEEP для всіх жетонів, що залишилися після надсилання початкових сум. У рамках транзакції одержувач міг швидко злити всю суму.
Команда Uniswap діяла швидко
Команда Дедауба миттєво повідомила команду UniSwap про можливість такої атаки. Вони порадили команді Uniswap вбудувати блокування повторного входу в свій новий маршрутизатор перед розгортанням.
Uniswap миттєво впорався з проблемою, внісши необхідні корективи перед прийняттям контракту. Uniswap нагородила команду Dedaub винагородою за помилки в розмірі 40 тисяч доларів, щоб продемонструвати їхню відданість безпеці людей. Однак команда Uniswap оцінила проблему як подію із сильним впливом, але малоймовірністю. Отже, це може статися в дуже складних сценаріях.
Протокол DEX UniSwap зазвичай знайомий з атаками повторного входу. У 2020 році з’явилися повідомлення про те, що DEX разом із Lendf.me втратили 25 мільйонів доларів у простій атаці повторного входу. Мережа також зазнавала інших атак, наприклад хакерських. У липні 2022 року хакери за допомогою фішингової атаки викрали ETH на 8 мільйонів доларів.