Разработчики Bitcoin Core раскрыли уязвимость высокой степени критичности, которая может позволить майнерам удалённо «уронить» (crash) некоторые ноды Bitcoin.
Summary
Проблема, отслеживаемая как 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 заявил, что это может позволить атакующему с достаточным доказательством работы крашить целевые ноды. Также он отметил, что «возможна» поддержка удалённого выполнения кода, хотя ограничения на объём данных в блоке делают такой исход «маловероятным».
Атаку нельзя было назвать простой. Майнеру нужно было сгенерировать специально подготовленный блок с достаточным доказательством работы, чтобы достичь кончика (chain tip) цепочки.
Это делало атаку затратной, потому что такой блок был бы недействительным. Он не мог заработать обычное вознаграждение за блок, оставляя атакующему расходовать вычислительную мощность без получения привычной майнинговой выплаты.
Bitcoin Core не сообщил о том, что баг использовался в реальных атаках. В бюллетене акцент делался на самой уязвимости, исправлении и хронологии раскрытия.
Баг не изменял консенсусные правила Биткоина. Он был связан с управлением памятью в ПО Bitcoin Core, а не с правилами, которые определяют допустимые транзакции или блоки в Bitcoin.
Cory Fields из MIT Digital Currency Initiative в частном порядке сообщил о баге 2 ноября 2024 года. Bitcoin Core заявил, что отчёт включал proof of concept и предложенный способ снизить риск.
Pieter Wuille протолкнул скрытое исправление спустя четыре дня через PR 31112. Запрос на включение (pull request) был объединён 3 декабря 2024 года — до того, как Bitcoin Core 29.0 вышел с исправлением в апреле 2025 года.
Бюллетень последовал политике раскрытия информации Bitcoin Core для уязвимостей высокой критичности. В ней говорится, что проблемы высокой критичности раскрываются после того, как последняя затронутая версия выходит из поддержки (end of life).
Кроме того, операторы нод, использующие Bitcoin Core версии до 29.0, всё ещё сталкиваются со старой уязвимостью. Bitcoin Core не обновляется автоматически, поэтому пользователям нужно вручную устанавливать более новые версии.
Предыдущий отчёт о рисках децентрализации в блокчейне ссылался на исследования, согласно которым 21% нод Bitcoin в июне 2021 года работали на устаревшем ПО Bitcoin Core. Этот контекст показывает, почему старые версии клиента могут оставаться проблемой безопасности ещё долго после выхода исправлений.
Связанные статьи
Спотовые ETF на Bitcoin зафиксировали рекордный приток $1,6 млрд за 4 дня подряд
Президент Колумбии Пeтро предлагает центр по майнингу Bitcoin на Карибах в трёх городах
Спотовые ETF на Bitcoin зафиксировали рекордный приток $1,6 млрд за 4 дня
Кит «Jason60704294» закрывает короткую позицию по BTC на 501,65 на $80 837, фиксирует $610K -убыток
Gomining запускает GoBTC на Consensus Miami, нацеливаясь на долгожданный платёжный слой Bitcoin
Цена Bitcoin продолжает торговаться выше $80,000 — это подходящее время для покупки?