Ошибка в клиенте исполнения Ethereum Reth могла приводить к неверному расчёту состояния блокчейна при определённых транзакциях. Около 5 ноября Reth, Optimism, Base и Tempo выпустили исправления. В Paradigm заявили, что системы вывода средств затронутых сетей не пострадали; Base также сообщила, что пользователи не испытали последствий. Операторам инфраструктуры всё же необходимо установить обновления.
Уязвимость в расчёте корня состояния Reth
Проблема присутствовала в более ранних версиях Reth и была связана с расчётом корня состояния. В редком сценарии, зависящем от конфигурации хранилища смарт-контракта, клиент мог обработать данные некорректно. Корень состояния — это криптографический отпечаток текущего состояния блокчейна, включая балансы счетов и данные контрактов. Если узлы вычисляют его по-разному, они могут разойтись в оценке корректности блока, что способно нарушить обработку транзакций или синхронизацию сети.
Технический директор Paradigm Георгиос Константопулос пояснил, что для запуска ошибки злоумышленнику потребовалось бы сформировать специальную транзакцию. Уязвимый участок кода мог использоваться в средах с менее производительным оборудованием, где Reth применяется для построения блоков, а также в сетях на OP Stack от Optimism. Таким образом, риск не ограничивался инфраструктурой основной сети Ethereum.
Reth, Optimism, Base и Tempo выпустили исправления
Команда Tempo обнаружила ошибку с помощью фаззинг-тестирования — автоматизированной проверки, при которой программе подают необычные и неожиданные данные, чтобы найти дефекты, которые могут пропустить обычные тесты. Paradigm выпустила Reth 2.10.0, Optimism — OP Reth v2.8.1, а Base — версию 1.5.3. По словам Константопулоса, Tempo также завершила исправление.
Reth отнесла установку обновления к задачам высокого приоритета для операторов узлов и рекомендовала обновиться также участникам, строящим блоки. Несколько сетей используют одно и то же или связанное программное обеспечение для исполнения, поэтому дефект общей инфраструктуры может затронуть разные блокчейны. Согласованные действия команд позволили подготовить исправления для нескольких проектов.
Base проверила корень состояния, LayerZero ограничила часть маршрутов
Base сообщила, что её система доказательств проверяет корни состояния с помощью независимой реализации. Команда повторно рассчитала и сверила актуальный корень, подтвердила его корректность и заявила, что пользователи не пострадали. По данным Base, ошибка также не затронула механизмы вывода средств. Мосты в экосистеме обычно опираются на корни квитанций о транзакциях или мультиподписную авторизацию, а не на расчёт корня состояния, в котором обнаружили дефект.
Обновление Base 1.5.3 устраняет и отдельную эксплуатационную проблему: из-за неё валидаторы могли останавливаться при обнаружении некорректного корня состояния. Операторам узлов следует установить новую версию, однако, как уточнила Base, повторная синхронизация узлов и дополнительные действия по восстановлению не нужны.
5 ноября Frax Finance сообщила, что протокол межсетевых сообщений LayerZero временно приостановил некоторые маршруты переводов, пока оценивал ситуацию. Frax заявила, что её активы и смарт-контракты работают штатно, а средства пользователей в безопасности. Доступные сведения не указывали на то, что ошибка Reth затронула контракты мостов LayerZero: ограничение было введено как мера предосторожности на время оценки рисков общей инфраструктуры.
Подтверждённых сообщений о краже средств с использованием ошибки в расчёте корня состояния нет. Исправления уже доступны, однако узлы обслуживаются независимыми операторами, поэтому установку обновлений необходимо подтвердить во всей затронутой инфраструктуре. Сервисам, временно ограничившим работу, также предстоит оценить, когда можно возобновить обычный режим.