Разработчики Ethereum выявили ошибку в клиенте Besu Ethereum, которая могла привести к "сбою консенсуса в сетях с несколькими реализациями EVM".

Гари Шульте сообщил о проблеме в репозиторий Hyperledger GitHub, и она была обнаружена Мартином Хольстом Свенде. Подразумевается, что "ни в одной производственной сети нет транзакций, которые могли бы вызвать этот сбой".

Ошибка, выявленная в ходе обзора кода The Merge

Свенде документально подтвердил, что обнаружил ошибку, когда "делал некоторые #ethereum fuzzing в рамках подготовки к #TheMerge". В ответ журналисту CryptoSlate Свенде заявил, что пользователи, работающие на узле Besu, могли застрять и "не иметь возможности следовать цепочке канонов". Кроме того, любая "сеть с преобладанием besu могла быть остановлена на корню".

Они бы застряли, не в состоянии следовать цепочке канонов. И/или, любая сеть с преобладанием besu (неETH-mainnet) могла бы быть остановлена на своем пути.

- M H (((Swende)))) (@mhswende) 27 сентября 2022 г.

Клиент Besu является вторым по популярности клиентом в сети Ethereum после Geth. По данным сайта ethernodes.org, клиент Besu используют 7,81% клиентов сети Ethereum.

Уязвимые версии клиента Besu

Версия 22.7.1 клиента Besu содержит исправление, гарантирующее, что "избыточный газ не будет выделяться на внутренние вызовы транзакций и исправляющее ошибки избыточного газа".

Версии ранее 22.1.3 также "предотвратят некорректное выполнение", однако Ethereum mainnet требует других функций, доступных только в более поздних версиях. Версии клиента 22.4.0 - 22.7.0 в настоящее время считаются уязвимыми к ошибке газа.

В результате пользователи клиентов Besu в основной сети должны обновить версию до исправленной.

Воздействие и разрешение

Данно Феррин подробно описал этот вопрос в статье на Hackmd, опубликованной 21 сентября. В анализе Феррина говорится, что

"Недостаток в обработке неподписанных данных как подписанных данных правильно закодированный смарт-контракт может создать вызов функции, которая вернет больше газа, чем было передано".

Дополнительную техническую информацию об ошибке можно найти в посте Феррина. Однако главным выводом является то, что ошибка была устранена без каких-либо проблем в сети Ethereum. Для того чтобы злоумышленник мог злонамеренно использовать ошибку, ему пришлось бы действовать точным образом.

"Для того, чтобы перевести это в разряд ошибок, нарушающих цепочку, необходим был специально разработанный звонок, включающий некоторые взаимодействия с правилом EIP-150 "все, кроме одного 64-го" и резервирование части доступного газа для вызывающего контракта".

Если бы ошибка не была обнаружена, в любой цепочке с высоким участием клиента Besu мог бы возникнуть "бесконечный цикл" смарт-контракта, при котором контракт "действительно выполнялся бы вечно".

Феррин заявил, что фаззинг позволил разработчикам выявить и исправить ошибку без проблем. Фаззинг - это метод, используемый разработчиками программного обеспечения, "который предполагает предоставление недостоверных, неожиданных или случайных данных в качестве входных данных для компьютерной программы".

"Самый большой урок, продемонстрированный этим эксплойтом, заключается в том, что сравнение данных трассировки при выполнении фаззинга выявляет больше ошибок, чем простое сравнение конечных результатов".

Ошибка с избытком газа не стала событием благодаря усердию разработчиков Ethereum, посвятивших себя защите сети. Однако потенциальный вред, который она могла нанести, демонстрирует сложность выполнения слияния без проблем.

Ошибка была исправлена в версии 22.7.1 с использованием "другого метода преобразования, который "зажимает" значения переполнения до максимальных ожидаемых значений, избегая проблем перевода подписи". Феррин прокомментировал, что пользователям, работающим на узлах в уязвимом диапазоне, следует обновиться до последней версии.

Лиам Акиба Райт
Редактор блокчейна в CryptoSlate

Также известный как Акиба, Лиам - журналист и редактор блокчейна на CryptoSlate. Он считает, что децентрализованная технология бухгалтерских книг обладает потенциалом для широкомасштабных позитивных изменений. По его прогнозам, в ближайшие 10 лет наступит рассвет новой эры технологических инноваций.

Источник