Производитель криптокошельков Ledger призывает пользователей своего приложения Ethereum обновить его снова, поскольку две уязвимости в подписи остались в предыдущем обновлении безопасности.
Производитель аппаратных кошельков опубликовал приложение Ethereum версии 1.22.3 25 августа, устранив уязвимости, которые могли скрывать операции от проверки устройства или авторизовывать одобрение токена вместо ожидаемого платежа.
Обновление последовало за скандалом, связанным с отдельным уязвимостью подписи Ethereum, воспроизведенной конкурирующим производителем кошельков OneKey. Эта проблема, идентифицированная как LSB-023, затрагивала более старые версии и позволяла скомпрометированному хосту вставлять команды, благодаря чему параметры транзакции могли изменяться после отображения, но до подписи.
Ledger заявил, что OneKey продемонстрировал уязвимость против версии 1.22.1 после того, как компания уже устранила её в приложении Ethereum 1.22.2, выпущенном 13 августа.
«Никто из пользователей Ledger не был взломан», — сказала команда безопасности Ledger said, описав демонстрацию как лабораторное воспроизведение с использованием устаревшего программного обеспечения. Компания заявила, что не обнаружила никаких признаков эксплуатации в реальных условиях.
Главный технологический директор Ledger Чарльз Гильемесделал то же различие, отметив, что воспроизведение уже исправленной уязвимости не является «взломом Ledger».
Версия 1.22.2 не устранила все известные уязвимости приложений Ethereum на Ledger. Вместо этого две отдельные уязвимости, LSB-024 и LSB-025, оставались до выпуска версии 1.22.3.
Два дополнительных пути подписания остались открытыми
LSB-024 повлиял на то, как приложение Ethereum обрабатывало массивы операций при очистке подписи.
Приложение считывало количество операций с использованием 16-битного значения, но оставшееся количество сохраняло в 8-битном поле. В доказательстве концепции от Ledger массив, содержащий 257 операций, сбросил счетчик обратно на единицу, из-за чего устройство отображало только последнюю операцию, хотя ее подпись авторизовала всю партию.
Эксплуатация требовала скомпрометированного хоста и необычно большого массива операций, контролируемых злоумышленником. Ledger протестировал эту ситуацию на частной сети с форком и сообщил об отсутствии потерь реальных пользователей.
Вторая уязвимость, LSB-025, затрагивала путь оплаты токенами, используемый приложением Ledger Exchange во время обменов.

Приложение Ledger проверило токен, количество и адрес назначения, но не проверило, что запрошенное действие действительно является платежом. Злоумышленник или скомпрометированный провайдер обмена может поэтому заменить одобрение токена, соответствующее тем же параметрам, и получить его подпись без дополнительного запроса на устройстве.
Уязвимость не позволяла создать неограниченное разрешение, переключиться на другой токен или предоставить разрешение произвольному адресу. Разрешение само по себе не осуществляет перевод средств, требуя последующей транзакции до перемещения одобренных активов.
Ledger заявил, что не обнаружил доказательств того, что уязвимость обмена была использована.
История релизов поднимает отдельный вопрос. Записи Ledger показывают, что исправление проблемы с подсчетом массивов было объединено 5 мая, а исправление проверки обмена — 25 мая, за месяцы до выпуска версии 1.22.2. Их бюллетени по безопасности не объясняют, почему эти изменения отсутствовали в этом обновлении.
Ledger защитил свой более широкий подход, указав на возможность обновления как ключевой аспект безопасности аппаратного кошелька. Его команда по безопасности заявила, что она постоянно выявляет уязвимости с помощью внутренних исследований и внешних программ баг-бонусов, а затем устраняет их с помощью выпусков программного обеспечения.
Для пользователей важно различать три уязвимости. Версия 1.22.2 устранила ошибку перекрёстного выполнения команд, позже воспроизведённую OneKey, а для устранения двух дополнительных ошибок подписи, раскрытых 27 августа, требуется версия 1.22.3.
Ledger рекомендует установить приложение Ethereum 1.22.3 или более поздней версии через Ledger Live и проверить версию на устройстве. Обновление прошивки аппаратного кошелька само по себе не заменяет затронутое приложение Ethereum.
Пост Ledger сообщает, что вирусный «взлом» уже был устранён, но два реальных бага всё ещё требовали исправления появился первым на CryptoSlate.

