Уязвимость Electrum позволяла вредоносным серверам красть биткоины через повышение комиссии

Ошибка безопасности в кошельке Electrum позволяла вредоносным серверам убеждать пользователей санкционировать переводы биткоинов в пользу атакующих — под видом повышения комиссии по транзакции. Разработчики подтвердили как минимум один случай с потерей средств. Об уязвимости Electrum сообщил в субботу; по словам разработчиков, часть серверов уже использовала её. В октябре поступило два сообщения, в том числе от пользователя, потерявшего средства после подтверждения внешне рутинного повышения комиссии. В отличие от полной ноды биткоина, Electrum получает историю транзакций и рассылает платежи через внешние серверы. До выпуска патча кошелёк принимал от серверов данные о неподтверждённых транзакциях, не проверяя их подписи. Атакующий, контролирующий сервер, мог перехватить платёж до попадания в сеть биткоина, подменить его в истории кошелька фиктивной транзакцией и направить монеты на свой адрес. Неверные подписи не выявлялись, а поддельный платёж отображался как ожидающий подтверждения. Механизм Replace-by-Fee позволяет заменить неподтверждённую транзакцию на транзакцию с более высокой комиссией. Выбрав его, пользователь мог получить от Electrum корректно подписанную замену мошеннической транзакции — и монеты уходили атакующему. В одном из описанных случаев вредоносная транзакция имела нулевую комиссию, что создавало видимость зависшего платежа. Атакующие также подбирали адреса назначения с теми же четырьмя последними символами, что и у настоящих, — быстрая визуальная сверка переставала быть надёжной. Первое сообщение поступило 11 октября и касалось кошелька с мультиподписью 2-из-3 и двумя аппаратными устройствами Trezor. Пользователь подтвердил нужный платёж на обоих устройствах, но затем обнаружил в истории другой исходящий перевод. О потере средств он не сообщал. Второй пользователь 18 октября рассказал, что повышение комиссии по подменённой транзакции привело к краже средств. Сумму потерь и названия вредоносных серверов разработчики не раскрывают. 24 октября Electrum выпустил версию 4.8.3. Обновление добавило проверку подписей неподтверждённых транзакций, расходующих монеты кошелька пользователя. Патч вышел через шесть дней после первого сообщения о краже. Более старые версии по-прежнему уязвимы к атаке через вредоносные серверы. Разработчики рекомендуют обновиться и проверять адрес получателя и сумму перед подтверждением платежа. Пользователи, подключавшиеся только к доверенным серверам, в том числе к собственным, под угрозу не попадали.