Уязвимость к атаке двойных трат позволяет злоумышленникам тратить одни и те же монеты два или более раз. Мошенники могут отправить транзакцию с минимальной комиссией, а затем сразу же заместить ее, увеличив комиссию. Таким образом, майнеры получают стимул сначала проверить более выгодную новую транзакцию. Затем мошенники могут перенаправить средства на другой адрес.
Как отмечают разработчики, хотя уязвимость частично устранена, пользователи некоторых кошельков все еще могут стать ее жертвами. Согласно отчету ZenGo, кошельки Ledger и Bread не учитывали потенциальную отмену транзакции во время тестирования. Кроме того, они просто визуально вносили дополнительные средства на балансы пользователей, не дожидаясь подтверждения транзакций.
«Основная проблема, лежащая в основе уязвимости BigSpender, заключается в том, что уязвимые кошельки не готовы к тому, что транзакция может быть отменена, и косвенно предполагают, что она будет подтверждена в конечном итоге», – пояснили исследователи.
Ledger решил данную проблему путем очистки кэша и принудительной повторной синхронизации сети. Однако, в случае с Bread выход из этой ситуации может «представлять большие трудности».
«Эта проблема оставляет пользователю единственный выход – перенести сид из Bread в другой кошелек. Учитывая, что Bread имеет нестандартный вывод пар ключей из сида, осуществление этой операции, вероятно, будет непростым и потребует наличия технических навыков со стороны пользователя и, возможно, внешних инструментов», – поясняет ZenGo.
Ситуация с кошельком Edge несколько отличается, поскольку баланс кошелька увеличился только один раз для серии ожидающих подтверждения транзакций. Проблема была решена путем нажатия кнопки Resync в меню параметров.
В некоторых случаях уязвимость BigSpender может лишить пользователей возможности полностью вывести криптоактивы, поскольку часть их просто не существует, что приводит к неудачным транзакциям. В более серьезных случаях, например, при преднамеренных DDoS-атаках двойных трат, владельцы кошельков вообще не смогут выводить средства.
«В некоторых уязвимых кошельках от этой атаки трудно или даже невозможно оправиться. Даже переустановка кошелька не способствует повторной синхронизации с сетью Биткоина и показывает правильный баланс. Если восстановление невозможно, атака становится необратимой», – предупреждает ZenGo.
Компания заявила, что уведомила разработчиков уязвимых кошельков за 90 дней до публикации отчета, но только некоторые из них решили полностью устранить уязвимость.
Как утверждают разработчики ZenGo, Bread Wallet устранил уязвимость в версии 4.3 для iOS и Android. Разработчики Ledger «признали наличие уязвимости, исправили некоторые аспекты (только расширенный вариант) атаки в версии 2.6», но «другие варианты атаки еще не устранены». Edge также признал наличие уязвимости и планирует «исправить ее в будущем».
Технический директор Ledger Чарльз Гиллем (Charles Guillemet) подтвердил, что ZenGo сообщила об уязвимости, однако он утверждает, что BigSpender – это скорее «хитрая уловка», а не уязвимость в традиционном смысле.
«Важно понимать, что эта проблема может рассматриваться не как уязвимость, а как хитрая уловка. Но мы не хотим, чтобы кто-либо стал жертвой подобных хитроумных схем», – сказал Гиллем.
Он добавил, что Ledger «выпустит обновление для программного обеспечения Ledger Live, чтобы каждый раз, когда входящая транзакция еще не была подтверждена, отображалось соответствующее сообщение». Он также заявил, что аппаратные кошельки Ledger «не затронуты этим недостатком пользовательского интерфейса».
Напомним, что ранее в этом году команда ZenGo обнаружила уязвимость, которая может стать причиной кражи токенов пользователей практически со всех кошельков dApp.