Уязвимость в Bitcoin Core
Разработчики Bitcoin Core сообщили о серьезной уязвимости, которая может позволить майнерам удаленно крашить некоторые узлы сети Bitcoin. Проблема, зарегистрированная под номером CVE-2024-52911, затрагивает версии Bitcoin Core с 0.14.0 до 28.x. Уязвимость была устранена в версии Bitcoin Core 29.0, выпущенной в апреле 2025 года.
Раскрытие информации
Информация о проблеме была обнародована 5 мая 2026 года, после того как последняя уязвимая версия 28.x достигла конца жизненного цикла 19 апреля. Уязвимость касалась интерпретатора скриптов Bitcoin Core во время валидации блоков.
Механизм уязвимости
Разработчики сообщили, что специально подготовленный блок может привести к тому, что узел получит доступ к памяти, которая уже была освобождена. Во время валидации Bitcoin Core предварительно вычисляет данные входных транзакций и отправляет проверки скриптов на фоновые потоки. В некоторых случаях недействительный блок мог уничтожить кэшированные данные, в то время как другой поток все еще пытался их прочитать.
Bitcoin Core отметил, что это может позволить злоумышленнику с достаточным доказательством работы крашить узлы жертв.
Также было упомянуто, что «возможно», что краш может поддерживать удаленное выполнение кода, хотя ограничения на данные блоков делают этот исход «маловероятным».
Сложность атаки
Атака не была простой в осуществлении: майнеру нужно было создать специально подготовленный блок с достаточным доказательством работы, чтобы достичь вершины цепи. Это сделало атаку дорогостоящей, поскольку такой блок был бы недействительным и не мог бы принести обычное вознаграждение за блок, оставляя злоумышленника тратить хешмощность без получения выплаты за майнинг.
История уязвимости
Bitcoin Core не сообщал о том, что уязвимость использовалась в реальных атаках. Уведомление сосредоточилось на недостатке, исправлении и временной шкале раскрытия. Уязвимость не изменила правила консенсуса Bitcoin; она была связана с обработкой памяти в программном обеспечении Bitcoin Core, а не с правилами, определяющими действительные транзакции или блоки Bitcoin.
Кори Филдс из MIT Digital Currency Initiative конфиденциально сообщил о проблеме 2 ноября 2024 года. Bitcoin Core сообщил, что отчет включал доказательство концепции и предложенный способ снижения риска. Питер Уилле внедрил скрытое исправление через PR 31112 в течение четырех дней после этого. Запрос на слияние был объединен 3 декабря 2024 года, прежде чем Bitcoin Core 29.0 был выпущен с исправлением в апреле 2025 года.
Политика раскрытия
Уведомление следовало политике раскрытия Bitcoin Core для уязвимостей высокой степени серьезности, согласно которой проблемы высокой степени серьезности раскрываются после того, как последняя затронутая версия достигает конца жизненного цикла. Кроме того, операторы узлов, использующие версии Bitcoin Core до 29.0, все еще сталкиваются со старой уязвимостью.
Проблема устаревшего ПО
Bitcoin Core не обновляется автоматически, поэтому пользователи должны вручную устанавливать новые версии. В прошлом отчете о рисках децентрализации блокчейна упоминалось исследование, согласно которому 21% узлов Bitcoin использовали устаревшее программное обеспечение Bitcoin Core в июне 2021 года. Этот контекст подчеркивает, почему старые версии клиентов могут оставаться проблемой безопасности долго после выпуска исправлений.