НовостиКриптовалютыBitcoin Core раскрыл три исправленные уязвимости, включая критичную ошибку в майнинге

Bitcoin Core раскрыл три исправленные уязвимости, включая критичную ошибку в майнинге

Автор: Crypto Valley Journal·

Ключевые выводы

  • •CVE-2025-62861 могла нарушить создание шаблонов блоков на затронутых майнинговых узлах после реорганизации; работу восстанавливал перезапуск узла.
  • •CVE-2025-62859 позволяла определенным пирам задерживать обработку блоков до 10 минут с помощью повторных запросов compact-блоков.
  • •CVE-2025-62860 могла распространить права whitelist на входящие Tor-пиры при использовании операторами специфической нестандартной конфигурации.
  • •Bitcoin Core исправил уязвимости в релизах 30.0, 29.2 и 28.3 до публикации advisory-записей 10 ноября 2026 года.
  • •После конца октября 2026 года поддерживались только Bitcoin Core 30.x и новее, а старые версии оставались без поддержки, даже если были исправлены.
Bitcoin Core раскрыл три исправленные уязвимости, включая критичную ошибку в майнинге

Bitcoin Core опубликовал сведения о трех уязвимостях в ноябре 2026 года — примерно через год после выпуска исправлений. Самая серьезная из них, с оценкой High, могла остановить создание корректных шаблонов блоков на майнинговых узлах после реорганизации цепочки.

Bitcoin Core — это эталонная реализация протокола Bitcoin. Узлы сети используют этот открытый исходный код для проверки и ретрансляции транзакций и блоков, а майнеры и пулы — для сборки шаблонов блоков из неподтвержденных транзакций в mempool, области сети для ожидающих транзакций.

По правилам проекта уязвимости раскрываются с задержкой: сначала исправление выходит в релизе, а техническое описание публикуется лишь после того, как затронутые версии устареют. Исправления для этих уязвимостей вошли в версии 30.0, 29.2 и 28.3, выпущенные в октябре 2025 года. Advisory-записи имеют идентификаторы CVE-2025-62861, CVE-2025-62859 и CVE-2025-62860 — стандартные обозначения, под которые каталогизируются публично раскрытые уязвимости ПО. CVE-2025-62861 получила оценку High, две другие — Medium. Соответственно, проект опубликовал advisory-записи всего через 14 дней после прекращения поддержки линейки 29.x — последней уязвимой серии релизов. Полные тексты доступны в официальном раскрытии и в индексе advisory-записей по безопасности проекта.

Как реорганизация могла останавливать майнинговые узлы

Уязвимость высокого уровня, CVE-2025-62861, затрагивает версии с 28.0 по 28.2 и с 29.0 по 29.1. Никлас Гёгге (Niklas Goegge) сообщил о ней в сентябре 2025 года. Дефект связан с TRUC — Topologically Restricted Until Confirmation, также известными как транзакции v3. Эта политика mempool вводит строгие ограничения на то, как неподтвержденные транзакции могут зависеть друг от друга; ее основное назначение — помогать протоколам второго уровня, таким как Lightning Network, повышать комиссии задним числом. Версия 28.0 добавила еще одно правило — вытеснение сиблингов (sibling eviction): новая транзакция может попытаться добавить второго потомка к TRUC-родителю, и при достаточной комиссии она заменяет существующего потомка.

Ошибка проявлялась во время реорганизации, или «reorg» — события, при котором сеть заменяет недавно добавленные блоки другой цепочкой. Bitcoin Core сначала возвращает транзакции из отсоединенных блоков в mempool с флагом bypass_limits=true. Однако ветка вытеснения сиблингов не учитывала этот флаг и выполнялась в любом случае. В результате правило вытесняло транзакцию, пока ее потомки оставались в mempool, и mempool оказывался заполнен транзакциями, тратившими несуществующие выходы. Поэтому проверка валидности падала каждый раз, когда узел пытался собрать новый шаблон блока.

Затронутые майнеры могли снова создавать корректные шаблоны только после перезапуска узла, поскольку при перезапуске mempool загружается в согласованном состоянии. Тем не менее в advisory для CVE-2025-62861 не названо никакого обходного решения, кроме обновления. Исправление подготовил Грег Сандерс (Greg Sanders) в PR #33504, который проект влил в основную ветку в октябре 2025 года и бэкпортировал в линейки 28.x, 29.x и 30.x. Уязвимость затрагивала только создание шаблонов: поскольку TRUC — правило mempool, а не консенсуса, на консенсус ошибка не влияла. Правила mempool, подобные TRUC, — это локальные политики, которые каждый узел применяет к собственным ожидающим транзакциям, в отличие от правил консенсуса, соблюдаемых всеми узлами общей цепочки.

Две уязвимости среднего уровня затрагивают ретрансляцию блоков и Tor-узлы

CVE-2025-62859 затрагивает версии до 29.2 и до 30.0. Юджин Зигель (Eugene Siegel) сообщил об этой уязвимости еще в апреле 2025 года. Она находится в обработке compact-блоков — сокращенного формата, которым узлы передают друг другу новые блоки. Затронутые версии очищали состояние загрузки такого блока до проверки на witness-мутабельность — изменение witness-данных задним числом. При неудачной проверке узел запрашивал данные повторно у того же узла через GETDATA с таймаутом 10 минут — примерно равным среднему интервалу между блоками Bitcoin. Поэтому вредоносный узел, первым анонсировавший compact-блок, мог задержать обработку блока у жертвы до 10 минут. Более того, злоумышленник мог повторять атаку без ограничений в режиме -blocksonly или при контроле всех трех высокоскоростных узлов — небольшого набора пиров, от которых узел получает приоритетные анонсы блоков. Ошибку исправил PR #32646, влитый в июне 2025 года.

Вторая уязвимость среднего уровня, CVE-2025-62860, затрагивает версии до 28.3, 29.2 и 30.0. Мартин Зумзанде (Martin Zumsande) и Антуан Пуансо (Antoine Poinsot) сообщили о ней в сентябре 2025 года — за две недели до сообщения Гёгге о высокой уязвимости. В Bitcoin Core входящие Tor-соединения отображаются под IP-адресом Tor-демона — локальной службы, передающей трафик анонимной сети. Если этот адрес попадал в диапазон IP, разрешенный через -whitelist, все входящие Tor-пиры получали права whitelist. Эти права снимают лимиты против DoS и защиты от утечек приватности.

Согласно advisory, «тысячи» доступных узлов mainnet предоставили эти права всем входящим Tor-соединениям. Часто эту опцию устанавливали поставщики, поставляющие Bitcoin Core в комплекте с Tor-демоном. При этом узлы без этой опциональной, нестандартной настройки уязвимость не затрагивала. Начиная с PR #33395, Bitcoin Core больше не учитывает входящие Tor-пиры при назначении прав whitelist.

Проект оценивает обе уязвимости как Medium. Задержка в обработке блоков была временной, и злоумышленник мог повторять ее по своему усмотрению лишь в специфических конфигурациях, а Tor-уязвимость требовала конфигурации, отличающейся от стандартной.

Почему между исправлением и раскрытием прошел год

Bitcoin Core намеренно разделяет исправление и раскрытие. Сначала исправление выходит в обычном релизе, и проект в этот момент не описывает уязвимость; детали публикуются позже, когда затронутые версии устарели или достигли конца поддержки. Это дает операторам время на обновление.

Для трех текущих advisory сообщения поступали с апреля по сентябрь 2025 года, исправления вошли в код с июня по октябрь 2025 года. Затем в октябре 2025 года вышли Bitcoin Core 30.0, 29.2 и 28.3 с этими исправлениями. Срок раскрытия определило окончание поддержки: поддержка 29.x, последней уязвимой линейки версий, завершилась 27 октября 2026 года, а advisory-записи вышли 10 ноября 2026 года — 14 дней спустя.

Индекс advisory-записей проекта использует четыре уровня критичности: Critical, High, Medium и Low. Все три advisory находятся на средних уровнях. Выделяется срок по CVE-2025-62859: Зигель сообщил об ошибке в апреле 2025 года, проект влил исправление в июне 2025 года, а детали стали публичными лишь спустя чуть более 18 месяцев после сообщения.

Что эти уязвимости значат для майнеров и операторов узлов

Высокая уязвимость затрагивала в основном майнеров и пулы. Ошибку triggering только узлы, пережившие реорганизацию и после этого вынужденные собирать шаблоны блоков. Напротив, две уязвимости среднего уровня затрагивали и обычные узлы, хотя каждая требовала специфической сетевой ситуации или конфигурации.

Версии 30.0 и 29.2 исправляют все три ошибки, а 28.3 — две из них. Однако с конца октября 2026 года поддержка оказывается только версиям от 30.x и новее. Поэтому любой, кто работает на 29.x или старше, использует неподдерживаемое ПО, даже с бэкпортами.

Advisory оставляют открытыми несколько вопросов. Например, неизвестно, может ли злоумышленник намеренно создать топологию реорганизации, triggering высокую ошибку. В advisory также не сказано, использовал ли кто-либо одну из трех уязвимостей, и нет точного числа узлов, затронутых Tor-уязвимостью. При этом из записей следует, что проект исправил и выпустил все три ошибки чуть более чем за год до раскрытия.