Компания Dedaub, занимающаяся вопросами безопасности, обнаружила и раскрыла критическую уязвимость в популярной децентрализованной бирже Ethereum Uniswap. Команда, занимающаяся разработкой протокола, исправила ошибку, и затронутые компоненты были успешно переведены в исходное состояние - в противном случае злоумышленник мог бы подстроить транзакции, чтобы украсть средства пользователя.
Uniswap избегает опасности и исправляет новые особенности
По данным компании по безопасности, уязвимость была непреднамеренно реализована в Universal Router. Этот компонент позволяет пользователям Uniswap торговать токенами ERC-20 и нелетучими токенами "в одном своп-маршрутизаторе".
Другими словами, пользователи Uniswap могут оптимизировать свои операции и торговать несколькими токенами и НФТ в рамках одной сделки, экономя время и деньги. Новый компонент также позволяет пользователям переводить средства третьим лицам.
Когда уязвимость была заложена, пользователь мог отправить транзакцию третьей стороне, и последняя могла получить доступ к средствам отправителя. Дедауб объяснил следующее:
(...) если в любой момент передачи будет вызван сторонний код (что проявляется из-за композиции протоколов), код может повторно войти в UniversalRouter и потребовать любые токены, временно находящиеся в контракте (...). Злоумышленнику также необходимо реализовать код для повторного входа в маршрутизатор (вызов execute) и списания всех сумм токенов. Маршрутизатор может содержать средства в середине транзакции из-за других действий и переводов в сложном свопе.
Универсальный маршрутизатор удерживает средства отправителя до завершения транзакции. Пока это происходило, средства были уязвимы, и злоумышленник мог слить их, вызвав специальные команды, такие как "dispatch" с ".TRANSFER" или ".SWEEP".
Уязвимость могла позволить злоумышленнику "повторно войти" в транзакцию, используя эту команду. Попав внутрь, злоумышленник мог "слить всю сумму" из кошелька отправителя.
Фирма по безопасности добавила следующее о "бесконечных сценариях", в которых могла быть использована уязвимость:
Если недоверенный код будет вызван в любой момент передачи, он может снова войти в UniversalRouter и потребовать любые токены, уже находящиеся в контракте UniversalRouter. Такие токены могут существовать, например, потому что пользователь намерен впоследствии купить NFT или перевести токены второму получателю, или потому что пользователь обменял большую сумму, чем нужно, и намерен "смахнуть" остаток себе в конце вызова UniversalRouter. И нет недостатка в сценариях, в которых ненадежный получатель может быть вызван (...).
Ethereum DEX предоставляет $3 млн в качестве вознаграждения за ошибку
В декабре 2022 года компания Uniswap запустила универсальный маршрутизатор в рамках новой совместимости с NFT. В то время Uniswap Labs объявила о программе вознаграждения в размере 3 миллионов долларов. Dedaub получил эту сумму за сообщение об ошибке в новом компоненте.
Компания отметила вознаграждение и тот факт, что злодей так и не воспользовался уязвимостью. Кроме того, фирма безопасности была "единственным сообщением об ошибке, по которому Uniswap приняла меры".
2022 год был проблемным для криптовалют и рискованных активов, а макроэкономические силы играли против зарождающегося сектора. Пользователи столкнулись не только со снижением цен, но и с трудностями, поскольку хакеры и плохие игроки отняли у индустрии миллиарды.
Данные аналитической компании Chainalysis утверждают, что только с 2017 по 2021 год плохие игроки получили более 26 миллиардов долларов в криптовалюте. Пока неясно, будет ли 2023 год продлевать или смягчать эту тенденцию.
На момент написания статьи цена UNI торгуется на уровне $5,70 с боковым движением на дневном графике.
Источник