Компания ZenGo создала тестовую сеть, чтобы продемонстрировать серьезный недостаток безопасности, распространенный среди dApp-приложений.
В отчете ZenGo говорится, что при совершении транзакции пользователи невольно предоставляют смарт-контрактам dApp-приложений полный контроль над средствами, находящимися в подключенном кошельке.
«В результате злоумышленники могут использовать эту уязвимость, чтобы украсть ВСЕ средства пользователей из dApp-кошелька без ведома владельца. Кража даже может произойти в любой момент в будущем, даже если пользователь больше не использует приложение», — говорится в отчете.
Так как пользователь дает разрешение на привязку кошелька, то смарт-контракт приложения может получить доступ к средствам в любое время без срока действия.
Чтобы доказать наличие уязвимости, разработчики создали приложение под названием baDAPProve. Когда они авторизировали транзакцию с определенным количеством токенов в тестовой сети, приложение baDAPProve успешно украло все оставшиеся токены.
Разработчики отмечают, что уязвимость была обнаружена несколько лет назад и до сих пор не устранена, а разработчики dApp-приложений специально не предупреждают пользователей о риске авторизации кошелька. По словам разработчиков, эта уязвимость есть даже в кошельках Opera, Imtoken и Trust wallet.
При этом исследователи отмечают, что кошельки Brave и Metamask, имеют расширенные настройки, которые позволяют задавать максимальную сумму, к которой dApp-приложение может получить доступ.