Разработчики 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 апреля.
Проблема была связана с интерпретатором скриптов Bitcoin Core в процессе валидации блоков. 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 не обновляется автоматически, поэтому пользователи должны устанавливать новые версии вручную.
В прошлом отчёте о рисках децентрализации блокчейна упоминалось исследование, согласно которому в июне 2021 года 21% узлов Bitcoin работали на устаревшем программном обеспечении Bitcoin Core. Этот контекст показывает, почему старые версии клиентов могут оставаться угрозой безопасности долгое время после выпуска исправлений.
