Разработчики Bitcoin Core раскрыли уязвимость высокой степени серьёзности, которая могла позволить майнерам удалённо «уронить» (крашнуть) некоторые узлы Bitcoin.
Краткое содержание
Проблема, отслеживаемая как CVE-2024-52911, затрагивала версии Bitcoin Core после 0.14.0 и до 29.0. Уязвимость была исправлена в Bitcoin Core 29.0, который был выпущен в апреле 2025 года.
Bitcoin Core сделал информацию публичной 5 мая 2026 года — после того, как финальная уязвимая ветка релизов 28.x достигла конца жизненного цикла 19 апреля.
Проблема была связана с интерпретатором сценариев (script interpreter) Bitcoin Core при валидации блоков. Bitcoin Core сообщил, что специально созданный блок мог заставить узел обращаться к памяти после того, как эти данные уже были освобождены.
При проверке Bitcoin Core заранее рассчитывает данные ввода транзакций и отправляет проверки сценариев в фоновые потоки. В некоторых случаях некорректный блок мог уничтожить кэшированные данные, в то время как другой поток всё ещё пытался их прочитать.
Bitcoin Core заявил, что это могло позволить атакующему с достаточным объёмом proof-of-work крашнуть узлы жертв. Также он указал, что «возможно», что краш может поддержать удалённое выполнение кода, хотя ограничения на объём данных в блоке делали такой исход «маловероятным».
Атаку было не так просто провести. Майнеру нужно было создать специально сформированный блок с достаточным proof-of-work, чтобы достичь кончика цепочки (chain tip).
Это делало атаку дорогостоящей, потому что такой блок был бы недействительным. Он не мог бы заработать обычную награду за блок, оставляя атакующему тратить вычислительную мощность (hashpower), не получая привычной выплаты за майнинг.
Bitcoin Core не сообщал, что уязвимость применялась в реальных атаках. В уведомлении основной акцент был на самой проблеме, исправлении и таймлайне раскрытия.
Уязвимость не меняла правила консенсуса Биткоина. Она была связана с обработкой памяти в ПО Bitcoin Core, а не с правилами, которые определяют допустимые транзакции или блоки Bitcoin.
Cory Fields из MIT Digital Currency Initiative в частном порядке сообщил о проблеме 2 ноября 2024 года. Bitcoin Core сообщил, что в отчёте присутствовали доказательство концепции и предложенный способ снизить риск.
Pieter Wuille затем отправил скрытое исправление спустя четыре дня через PR 31112. Запрос на включение (pull request) был объединён 3 декабря 2024 года — до того, как Bitcoin Core 29.0 вышел в апреле 2025 года с этим исправлением.
Уведомление последовало политике раскрытия информации Bitcoin Core для уязвимостей высокой степени серьёзности. Согласно политике, проблемы высокой степени раскрываются после того, как последняя затронутая версия уйдёт в конец жизненного цикла.
Кроме того, операторы узлов, использующие версии Bitcoin Core до 29.0, по-прежнему сталкиваются со старой уязвимостью. Bitcoin Core не обновляется автоматически, поэтому пользователям нужно вручную устанавливать более новые версии.
Предыдущий отчёт о рисках децентрализации блокчейна ссылался на исследование, согласно которому 21% узлов Bitcoin работали на устаревшем ПО Bitcoin Core в июне 2021 года. Этот контекст показывает, почему более старые версии клиента могут оставаться угрозой безопасности ещё долго после выхода исправлений.
Связанные статьи
Американская биржа Bitcoin сообщает об убытке в $81,8 млн за 1-й квартал, несмотря на рекордный майнинг 817 BTC
Bitcoin пробивает $81 000 в течение дня, падение на 0,86%
GDC получает 7 500 Bitcoin в рамках сделки по обмену долей на 39,2 млн долларов
CryptoQuant: Рост BTC в апреле был обусловлен фьючерсами с бессрочными контрактами, предупреждение о рисках коррекции