Ledger устранила уязвимость в приложении Ethereum, затрагивавшую процессы подписания
Ключевые выводы
- •Уязвимость была устранена 12 августа в версии 1.22.2 приложения Ethereum от Ledger.
- •Вредоносное dApp могло использовать состояние гонки APDU для подмены данных транзакции во время подписания.
- •Дефект затрагивал процессы «ясной подписи» Ledger, которые должны делать сведения о транзакции читаемыми на устройстве.
- •По словам Ledger, команда безопасности Donjon обнаружила и устранила проблему до внешнего раскрытия.
- •С этой уязвимостью не связано никаких сообщений о потере средств.

12 августа Ledger незаметно устранила уязвимость в приложении Ethereum для своего аппаратного кошелька, которая могла позволить вредоносному децентрализованному приложению подменить легитимную транзакцию вредоносной в процессе подписания. Исправление вошло в версию 1.22.2 приложения Ethereum, однако компания почти ничего не сообщала о нём публично, пока исследователь безопасности не привлёк внимание к проблеме.
Дефект был связан с состоянием гонки команд APDU — типом уязвимости, при котором конкурирующие инструкции могут поступать на устройство в порядке, нарушающем процесс подписания. На практике пользователь мог думать, что одобряет небольшой перевод токенов, хотя в действительности предоставлял неограниченные разрешения на управление токенами адресу, контролируемому злоумышленником.
Как работала уязвимость
Аббревиатура APDU расшифровывается как Application Protocol Data Unit — формат обмена данными, который программное обеспечение на компьютере использует для связи с защищённым чипом внутри устройства Ledger. В процессе «ясной подписи» (clear signing), когда устройство отображает на экране читаемые сведения о транзакции, состояние гонки могло позволить второй, вредоносной команде APDU незаметно проникнуть в процесс и заменить исходные данные транзакции.
Для атаки требовалось скомпрометированное или вредоносное dApp, использующее временно́е окно уязвимости. Пользователь, взаимодействующий с доверенным легитимным приложением, не подвергался бы этому риску.
Внутренняя команда безопасности Ledger, известная как Donjon, обнаружила дефект раньше внешних исследователей. По словам компании, Donjon использовала инструменты с поддержкой искусственного интеллекта, чтобы найти и устранить проблему.
Публичное раскрытие после выхода патча
Патч был выпущен 12 августа без бюллетеня безопасности, записи в блоге или публичной публикации в X. Около десяти дней исправление существовало практически без внимания общественности.
Ситуация изменилась в период с 21 по 23 августа, когда исследователь безопасности под именем TestMachine публично раскрыл информацию об ошибке. TestMachine описал риск подмены транзакций и механизм состояния гонки, обратив внимание на уязвимость, о существовании которой большинство пользователей Ledger не знали, не говоря уже о её устранении.
По имеющимся данным, TestMachine отклонил предложение о вознаграждении от Ledger.
Технический директор Ledger Шарль Гийеме (Charles Guillemet) раскритиковал публичное раскрытие, назвав его нагнетанием страха. По словам Гийеме, пользователи последней версии приложения Ethereum уже были защищены, а Ledger устранила проблему до раскрытия со стороны TestMachine.
Ясная подпись и более широкий контекст
Уязвимость примечательна тем, что затрагивала процессы «ясной подписи» Ledger — функцию, призванную снизить риски «слепой подписи». Ledger вложила значительные средства в то, чтобы сделать ясную подпись режимом по умолчанию, включая более раннюю работу со стандартом ERC-7730, предназначенным для стандартизации отображения данных транзакций на аппаратных кошельках. Это делает проблему значимой за рамками отдельного отчёта об ошибке: она находится на пересечении безопасности кошельков, читаемости транзакций и продолжительных усилий по упрощению проверки подписи на устройстве до одобрения запроса пользователем.
Сообщений о потере средств из-за этой уязвимости не поступало. Ledger заявила, что патч был заблаговременно развёрнут командой Donjon до подачи какого-либо внешнего уведомления. Для пользователей и разработчиков, полагающихся на аппаратные кошельки в рабочих процессах на базе Ethereum, этот эпизод также подчёркивает, почему обновления приложений важны даже тогда, когда прошивка самого устройства не меняется.
Для пользователей Ledger главный практический вывод прост: обновите приложение Ethereum до версии 1.22.2 или новее, если это ещё не сделано.