Ethereum отложил обновление платформы из-за выявления критической уязвимости
Разработчики криптовалюты Ethereum отложили запланированный на 17 января технический форк блокчейна, необходимый для обновления версии платформы ("Constantinople"). Решение принято в связи с выявлением критической уязвимости в реализации системы умных контрактов, позволяющей похитить средства у владельцев умных контрактов.
Выявившие проблему исследователи утверждают, что проблема специфична для ветки "Constantinople", которая еще не введена в строй. Чтобы отложить планировавшийся форк блокчейна администраторам узлов, майнерам и биржам рекомендуется срочно обновить Geth до выпуска 1.8.21, откатиться на версию 1.8.19 или запускать приложение с опцией "--override.constantinople=9999999". При использовании клиента Parity необходимо обновить программу до версии 2.2.7-stable/2.3.0-beta или откатиться на выпуск 2.2.4-beta. Обычным пользователям криптокошельков, не участвующим в формировании сети и обслуживающим узлы обновлять приложения не обязательно.
Владельцам умных контрактов рекомендуется проверить свои контракты на предмет подверженности уязвимости. Проблема вызвана снижением в спецификации EIP-1283 стоимости внутренних транзаций ("газ") для операций SSTORE. Из-за данного изменения после обновления платформы до ветки "Constantinople" некоторые уже существующие умные контракты станут подвержены атаке на реентерабельность (re-entrancy, в условиях когда новое обращение к контракту возможно до завершения обработки предыдущего, состояние контракта может измениться в процессе его выполнения).
В ходе аудита изменения блокчейна после форка "Constantinople" исследователи безопасности пришли к выводу, что вероятность проведения re-entrancy атаки полностью не исключается для некоторых видов контрактов, в которых перед операторами изменения состояния используются функции transfer и send. Например, проблема может затрагивать контракты, в которых несколько участников совместно получают средства, решают как разделить полученные средства и инициируют выплату этих средств. До введения в строй ветки "Constantinople" контракты не подвержены уязвимости, т. е. владельцам контрактов ничего не угрожает.