Luka w portfelu Electrum umożliwiała złośliwym serwerom kradzież bitcoinów przy podwyższaniu opłat

Luka bezpieczeństwa w portfelu Electrum pozwalała złośliwym serwerom nakłonić użytkowników do autoryzacji przelewu bitcoinów na rzecz atakujących w momencie, gdy próbowali oni podnieść opłatę transakcyjną. Deweloperzy potwierdzili co najmniej jeden przypadek kradzieży środków. Electrum ujawniło podatność w sobotę, zaznaczając, że część serwerów już ją wykorzystywała. W październiku deweloperzy otrzymali dwa zgłoszenia, w tym od użytkownika, który stracił środki po zatwierdzeniu pozornie rutynowej podwyżki opłaty. W odróżnieniu od pełnego węzła bitcoina Electrum pobiera historię transakcji i rozgłasza płatności przez zewnętrzne serwery. Przed wydaniem poprawki portfel przyjmował informacje serwera o niepotwierdzonych transakcjach bez weryfikacji ich podpisów. Atakujący kontrolujący serwer mógł przechwycić płatność, zanim trafiła do sieci Bitcoin, a następnie podmienić transakcję w historii portfela i skierować monety użytkownika na adres przez siebie kontrolowany. Electrum nie wykrywało nieprawidłowych podpisów i pokazywało fałszywą płatność jako oczekującą. Mechanizm Replace-by-Fee w Bitcoinie pozwala zastąpić niepotwierdzoną transakcję transakcją z wyższą opłatą. Gdy użytkownik wybrał tę opcję, Electrum mogło podpisać prawidłowe zastępstwo dla oszukańczej transakcji i wysłać monety do atakującego. Jedna ze zgłoszonych złośliwych transakcji miała zerową opłatę, co sprawiało wrażenie zablokowanej płatności. Atakujący tworzyli też adresy odbiorcy o tych samych czterech ostatnich znakach co adresy zamierzone, przez co szybka kontrola wzrokowa stawała się zawodna. Pierwsze zgłoszenie wpłynęło 11 października i dotyczyło portfela multisig 2 z 3 z dwoma urządzeniami sprzętowymi Trezor. Użytkownik potwierdził zamierzoną płatność na obu urządzeniach, po czym znalazł w historii portfela inną transakcję wychodzącą. Nie zgłosił jednak strat. Drugi użytkownik poinformował 18 października, że podniesienie opłaty w podmienionej transakcji doprowadziło do kradzieży środków. Deweloperzy nie ujawnili kwoty strat ani nazw złośliwych serwerów. 24 października Electrum wydało wersję 4.8.3. Aktualizacja wprowadziła walidację podpisów dla niepotwierdzonych transakcji wydających monety należące do portfela użytkownika. Poprawka trafiła do użytkowników sześć dni po pierwszym zgłoszonym przypadku kradzieży. Starsze wersje pozostają podatne na opisany atak przez złośliwe serwery. Deweloperzy zalecają aktualizację oraz weryfikację adresów odbiorcy i kwot płatności przed autoryzacją przelewu. Użytkownicy łączący się wyłącznie z zaufanymi serwerami, w tym z serwerami, które sami prowadzili, nie byli narażeni na ten atak.