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

Компания Ledger устранила уязвимость в приложении Ethereum для аппаратного кошелька, которая могла позволить вредоносному dApp подменить транзакцию в процессе подтверждения, пока устройство продолжало отображать транзакцию, изначально проверенную пользователем.
Такая проверка на экране устройства — основа модели безопасности аппаратного кошелька: приватные ключи остаются изолированными на устройстве, а транзакция, отображаемая на его экране, должна в точности совпадать с той, что подписывается, даже если подключённый компьютер или браузер скомпрометированы.
21 августа компания TestMachine, специализирующаяся на безопасности, раскрыла сведения об уязвимости подмены подписи после её воспроизведения на устройстве Ledger (пост в X). К этому моменту Ledger уже выпустила 12 августа версию 1.22.2 приложения Ethereum, а в истории релизов для этого обновления указаны исправления безопасности (журнал изменений).
Вредоносный dApp мог изменить транзакцию до подписания
Уязвимость затрагивала поток команд между подключённым dApp и приложением Ethereum от Ledger. Вредоносное приложение с прямым доступом к устройству через WebHID могло вмешаться, пока оставалась открытой проверка транзакции, и заменить контекст подписания до подтверждения пользователем. WebHID — это браузерный интерфейс, позволяющий веб-страницам напрямую взаимодействовать с аппаратными устройствами; именно так веб-приложение могло получить доступ к кошельку.
Таким образом, устройство могло продолжать отображать исходную транзакцию, подготавливая при этом другую транзакцию для финальной подписи. TestMachine продемонстрировала проблему на примере безобидного перевода ETH, который можно было подменить подтверждением токена — типом транзакции, способным предоставить другому адресу или контракту разрешение на распоряжение токенами пользователя, — что открывало возможность авторизовать операцию, отличную от отображаемой на экране устройства.
Версия 1.22.2 блокирует конкурирующие команды подписи во время незавершённой проверки и ужесточает порядок поддержки состояния подписания в процессе подтверждения. Исправление сохраняет связь между транзакцией, отображаемой на защищённом экране, и транзакцией, которую устройство в итоге подписывает.
Ledger заявляет, что уязвимость нашла команда Donjon до раскрытия
Технический директор Ledger Шарль Гийеме (Charles Guillemet) сообщил, что команда безопасности Donjon компании уже обнаружила и устранила ошибку примерно за две недели до публикации результатов TestMachine, используя в ходе проверки инструменты безопасности с поддержкой ИИ (пост в X).
Гийеме также раскритиковал процесс раскрытия, отметив, что TestMachine обратилась в программу вознаграждений Ledger (bug bounty) лишь после выпуска исправления, а затем опубликовала свои результаты, не завершив стандартную процедуру ответственного раскрытия. При координируемом раскрытии исследователи сообщают об уязвимостях в приватном порядке и дают вендорам время выпустить исправление до публикации деталей — именно эта последовательность и лежит в основе спора.
Пользователи, использующие актуальную прошивку устройства и версию 1.22.2 приложения Ethereum, защищены от уязвимости.
Эта находка — ещё один пример проникновения ИИ в проверки безопасности кошельков. Недавний аудит Bitcoin Red Team применял анализ с привлечением ИИ совместно с исследователями-людьми и выявил тысячи потенциальных проблем безопасности в биткоин-кошельках и инфраструктуре.
Производители аппаратных кошельков ускоряют обновления безопасности
Исправление Ledger вышло менее чем через неделю после того, как BitBox выпустила прошивку 9.26.5 для устранения двух серьёзных уязвимостей, включая дефект повреждения памяти, который при определённых условиях мог позволить выполнение произвольного кода.
Безопасность аппаратных кошельков подвергается более пристальному вниманию с тех пор, как сбой генерации сид-фраз в Coldcard выявил кошельки, созданные с недостаточной случайностью. Поскольку приватные ключи кошелька выводятся из его сид-фразы, слабая случайность может сделать эти ключи воспроизводимыми для других. Общий объём похищенного биткоина при этом оценивался в сумму до 132 млн долларов, поскольку несколько атакующих наперегонки искали уязвимые адреса.
Приложение Ethereum 1.22.2 от Ledger, выпущенное 12 августа, — это исправленная версия, закрывающая недавно раскрытую уязвимость подписи; более ранние версии приложения исправления не содержат.