Ledger naprawia lukę w aplikacji Ethereum wpływającą na procesy podpisywania
Najważniejsze informacje
- •Luka została naprawiona 12 sierpnia w aplikacji Ethereum Ledgera w wersji 1.22.2.
- •Złośliwa dApp mogła wykorzystać wyścig poleceń APDU do podmiany danych transakcji w trakcie podpisywania.
- •Wada dotyczyła procesów clear signing Ledgera, które mają zapewniać czytelność szczegółów transakcji na urządzeniu.
- •Ledger podał, że jego zespół bezpieczeństwa Donjon wykrył i rozwiązał problem przed ujawnieniem zewnętrznym.
- •Z tą luką nie związano żadnych doniesień o utracie środków.

Ledger po cichu załatał 12 sierpnia lukę w aplikacji Ethereum swojego portfela sprzętowego, która mogła pozwolić złośliwej aplikacji zdecentralizowanej na podmianę legalnej transakcji na szkodliwą w trakcie podpisywania. Poprawka trafiła do aplikacji Ethereum w wersji 1.22.2, jednak firma powiedziała o niej publicznie niewiele, dopóki badacz bezpieczeństwa nie zwrócił na sprawę uwagi.
Wada polegała na wyścigu poleceń APDU — rodzaju podatności, w której konkurujące ze sobą instrukcje mogą docierać do urządzenia w kolejności zakłócającej proces podpisywania. W praktyce użytkownik mógł sądzić, że zatwierdza niewielki transfer tokenów, podczas gdy w rzeczywistości autoryzował nieograniczone uprawnienia do tokenów na rzecz adresu kontrolowanego przez atakującego.
Jak działała luka
APDU to skrót od Application Protocol Data Unit — formatu komunikacji, którego oprogramowanie na komputerze używa do kontaktu z bezpiecznym chipem wewnątrz urządzenia Ledger. Podczas procesów „clear signing” (podpisywania jawnego) Ledgera, w których urządzenie wyświetla na ekranie czytelne dla człowieka szczegóły transakcji, wyścig mógł pozwolić drugiemu, złośliwemu poleceniu APDU wcisnąć się w proces i podmienić pierwotne dane transakcji.
Atak wymagał skompromitowanej lub złośliwej dApp, która wykorzystałaby okno czasowe. Użytkownik korzystający z zaufanej, legalnej aplikacji nie byłby narażony na ten problem.
Wewnętrzny zespół bezpieczeństwa Ledgera, znany jako Donjon, wykrył lukę, zanim zrobił to jakikolwiek zewnętrzny badacz. Firma podała, że Donjon wykorzystał narzędzia wspierane przez AI, aby znaleźć i rozwiązać problem.
Publiczne ujawnienie nastąpiło po poprawce
Poprawka została wydana 12 sierpnia bez komunikatu bezpieczeństwa, wpisu na blogu ani publicznego posta na X. Przez około 10 dni poprawka funkcjonowała w obiegu przy znikomej świadomości publicznej.
To zmieniło się między 21 a 23 sierpnia, gdy badacz bezpieczeństwa działający pod nazwą TestMachine publicznie ujawnił błąd. TestMachine opisał ryzyko podmiany transakcji i mechanikę wyścigu, zwracając uwagę na lukę, o której istnieniu większość użytkowników Ledgera nie wiedziała, a tym bardziej o tym, że została naprawiona.
Według doniesień TestMachine odrzucił propozycję nagrody (bounty) od Ledgera.
CTO Ledgera Charles Guillemet sprzeciwił się publicznemu ujawnieniu, określając je jako siańie strachu. Guillemet podkreślił, że użytkownicy korzystający z najnowszej wersji aplikacji Ethereum są już chronieni i że Ledger rozwiązał problem przed ujawnieniem dokonanym przez TestMachine.
Clear signing i szerszy kontekst
Luka była istotna, ponieważ dotyczyła procesów clear signing Ledgera — funkcji mającej zmniejszyć ryzyka związane ze ślepym podpisywaniem (blind signing). Ledger mocno zainwestował w uczynienie clear signing rozwiązaniem domyślnym, w tym we wcześniejsze prace nad standardem ERC-7730, którego celem jest ustandaryzowanie sposobu wyświetlania danych transakcji na portfelach sprzętowych. To sprawia, że problem wykracza poza pojedynczy raport o błędzie: leży na przecięciu bezpieczeństwa portfeli, czytelności transakcji oraz długotrwałych starań, aby podpisywanie na urządzeniu było łatwiejsze do zweryfikowania, zanim użytkownik zatwierdzi żądanie.
Nie pojawiły się żadne doniesienia o utracie środków z powodu tej luki. Ledger podał, że poprawka została wdrożona proaktywnie przez Donjon, zanim wpłynęło jakiekolwiek zewnętrzne zgłoszenie. Dla użytkowników i programistów polegających na portfelach sprzętowych w przepływach pracy opartych na Ethereum ta sytuacja podkreśla także, dlaczego aktualizacje aplikacji mają znaczenie, nawet gdy firmware samego urządzenia pozostaje niezmieniony.
Dla użytkowników Ledgera bezpośredni wniosek jest prosty: należy zaktualizować aplikację Ethereum do wersji 1.22.2 lub nowszej, jeśli nie jest jeszcze zainstalowana.