Компания 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
Источник: Chainalysis

Данные аналитической компании Chainalysis утверждают, что только с 2017 по 2021 год плохие игроки получили более 26 миллиардов долларов в криптовалюте. Пока неясно, будет ли 2023 год продлевать или смягчать эту тенденцию. 

Цена UNI движется в боковом направлении на дневном графике. Источник: UNIUSDT Tradingview
Цена UNI движется в боковом направлении на дневном графике. Источник: UNIUSDT Tradingview

На момент написания статьи цена UNI торгуется на уровне $5,70 с боковым движением на дневном графике. 

Источник