Portfel Bitcoin Electrum łata poważną lukę, która przekierowywała płatności do atakujących
Najważniejsze informacje
- •Electrum 4.8.3, wydana 24 października, naprawia poważną lukę, która pozwalała złośliwym serwerom wyświetlać fałszywe transakcje i przekierowywać płatności z podniesioną opłatą na adresy kontrolowane przez atakujących.
- •Podatność wynikała z braku weryfikacji podpisów niepotwierdzonych transakcji otrzymywanych od serwerów Electrum, co pozwalało sfałszowanym płatnościom z zerową opłatą wyglądać na utknięte w historii użytkownika.
- •Doradztwo bezpieczeństwa stwierdza, że niektóre serwery przeprowadzały atak w praktyce, a jeden użytkownik zgłosił potwierdzoną stratę 18 października po podniesieniu opłaty za zmodyfikowaną transakcję.
- •Łatka weryfikuje kryptograficzne podpisy wejść należących do portfela przed dodaniem niepotwierdzonych transakcji do historii, podczas gdy transakcje przychodzące od zewnętrznych nadawców są nadal przyjmowane bez weryfikacji podpisów.
- •Użytkownicy wersji starszych niż 4.8.3 pozostają narażeni i powinni zaktualizować lub ręcznie sprawdzać adresy wyjściowe, natomiast osoby łączące się wyłącznie z własnymi serwerami nie są dotknięte.

Portfel Bitcoin Electrum wydał 24 października wersję 4.8.3 z łatką na poważną lukę, która pozwalała złośliwym serwerom wstrzykiwać fałszywe transakcje i wprowadzać użytkowników w błąd, tak aby płacili na adresy kontrolowane przez atakujących.
Luka dotyczy wszystkich wersji portfela starszych niż 4.8.3, która jest już dostępna. Co najmniej jeden użytkownik potwierdził utratę środków w wyniku tego ataku.
Jak działa atak
Zgodnie z doradztwem bezpieczeństwa opublikowanym przez dewelopera Electrum SomberNighta atak wykorzystuje model zaufania portfela wobec niepotwierdzonych transakcji. Gdy użytkownik rozgłasza płatność przez skompromitowany serwer, serwer może wyciszyć prawdziwą transakcję i wstrzyknąć fałszywą, pozornie sprzeczną — wyświetlającą adres wyjściowy atakującego i zerową opłatę, przez co płatność wygląda na utkniętą.
Ponieważ Electrum nie weryfikuje podpisów niepotwierdzonych transakcji otrzymywanych od serwera, sfałszowana transakcja pojawia się w historii portfela jako legalna. Gdy użytkownik zwiększa opłatę za pozornie zablokowaną płatność, podpisuje i rozgłasza zupełnie nową, ważną transakcję — której adres wyjściowy należy do atakującego. Pierwotna płatność nigdy nie została wysłana; podniesienie opłaty to pierwsza transakcja, która faktycznie trafia do sieci, i to ona płaci atakującemu.
Podnoszenie opłat (fee-bumping) to sama w sobie rutynowa praktyka w Bitcoinie — standardowy sposób „pchnięcia” płatności, która wygląda na utkniętą — dlatego podmiana zamienia codzienny krok rozwiązywania problemów w moment przekierowania środków. To zerowa opłata wyświetlana na fałszywej transakcji tworzy wrażenie zablokowanej płatności.
SomberNight zauważył, że atakujący mogą tak dobierać (grind) adres wyjściowy fałszywej transakcji, aby pasował do ostatnich czterech znaków zamierzonego adresu docelowego użytkownika. Każdy, kto sprawdza tylko końcówkę długiego adresu Bitcoin, zobaczy pozornie zgodny adres.
Atak potwierdzony w praktyce
Doradztwo stwierdza, że „niektóre serwery przeprowadzają ten atak w praktyce”, co potwierdzają raporty dwóch użytkowników. Użytkownik znany jako dannydeezy pierwszy zgłosił podejrzane zachowanie serwera 11 października; sfałszowana transakcja nigdy nie rozeszła się poza lokalny serwer, więc nie doszło do utraty środków. Drugi użytkownik, Raju-K12, zgłosił potwierdzoną stratę 18 października po podniesieniu opłaty za zmodyfikowaną transakcję.
Co zmienia łatka
Poprawka w wersji 4.8.3 zamyka główną powierzchnię ataku, weryfikując kryptograficzne podpisy wejść należących do portfela, zanim jakakolwiek niepotwierdzona transakcja zostanie dodana do lokalnej historii. Serwer nie może już wstrzyknąć fałszywej transakcji dotyczącej adresów użytkownika bez dostarczenia ważnych podpisów — których atakujący nie może sfałszować. Poprawka została oznaczona w repozytorium 23 października, a binaria opublikowano następnego dnia na oficjalnej stronie wydania.
Transakcje przychodzące od zewnętrznych nadawców — w których żadne wejście nie należy do portfela użytkownika — są nadal przyjmowane bez weryfikacji podpisów. SomberNight przyznał się do tej pozostałej luki w doradztwie, zauważając, że jej zamknięcie wymagałoby dodatkowej pracy. Jak i kiedy Electrum rozszerzy tę weryfikację na transakcje zewnętrzne, to główna otwarta kwestia do obserwowania w przyszłych wydaniach.
Znany cel
Electrum, jeden z najstarszych portfeli programowych dla Bitcoina, już wcześniej radził sobie ze złośliwymi kampaniami. Atak rozpoczęty w 2018 roku wykorzystywał nieuczciwe serwery do wyświetlania fałszywych powiadomień o aktualizacji, a do 2020 roku wyprowadził od użytkowników Electrum szacunkowo 25 milionów dolarów.
Otwarty model serwerowy portfela — każdy może uruchomić węzeł — to właśnie to, co umożliwia tę klasę ataków. Electrum to lekki klient, który polega na zewnętrznych serwerach w zakresie danych blockchaina, zamiast pobierać pełny łańcuch — kompromis, dzięki któremu portfel jest szybki, ale umieszcza jego bezpieczeństwo w modelu zaufania opartym na serwerach, na który ta luka bezpośrednio celowała. Użytkownicy łączący się wyłącznie z serwerem, który sami prowadzą, nie są narażeni.
Każdy, kto nadal korzysta z wersji starszej niż 4.8.3, pozostaje zagrożony, a kto nie może natychmiast zaktualizować, powinien ręcznie sprawdzać adresy wyjściowe i kwoty przed podpisaniem jakiejkolwiek transakcji. Electrum 4.8.3 jest dostępny na electrum.org oraz w repozytorium GitHub projektu.