Майнер мог раздуть undo-файл Bitcoin Core сверх 4 ГиБ: 32-битные позиции переполнялись, данные портились, и при подходящей реорганизации узел останавливался. На Windows и 32-битных системах сбой наступал уже на 2 ГиБ и без реорганизации. Опасность CVE-2026-117346 низкая: понадобились бы блоки всей сети примерно за месяц. Версии 32.1, 31.2, 30.4 и 29.5 исправляют 64-битные системы, а 32-битные узлы и хранение блоков на FAT32 остаются под угрозой.
Мониторинг исключений сокетов в Bitcoin Core 29.5 теперь работает одинаково в poll() и select() (#36665), а для пиров с приостановленной отправкой введён обязательный таймаут (#36667). Позиции во flatfile перешли на 64-битные целые (#36669), для адресов от сидов узлы предполагают поддержку v2transport, один DNS-сид удалён.
Притворившись, что не поддерживает пинги BIP 31, вредоносный пир мог избежать отключения через 20 минут и намеренно медленно читать данные: очередь отправки узла росла до 2 МБ в час на каждого входящего пира и до 5 МБ на исходящего. CVE-2026-117349 средней опасности закрывает #36667 в Bitcoin Core 32.1, 31.2, 30.4 и 29.5; узлы с -blocksonly были уязвимы гораздо меньше.
Подключённый пир мог обрушить узел на Windows, macOS и BSD, отправляя срочные данные TCP: они проходили мимо приостановленного чтения в бэкенде select(), и память расходовалась без ограничений (CVE-2026-117350). Узлы на Linux используют poll() и не затронуты. Баг средней опасности нашло LLM-сканирование в рамках Project Loupe, исправления вошли в Bitcoin Core 32.1, 31.2, 30.4 и 29.5.
Вслед за BIP 323 в Bitcoin Core 30.4 биты 5–28 из BIP 9 перестали считаться сигналами софтфорков, поэтому блоки с ними не вызывают предупреждений о неизвестном развёртывании (#34779). В сетевой части появился обязательный таймаут для пиров с приостановленной отправкой (#36667), а позиции во flatfile теперь хранятся в 64-битных целых (#36669).
Приватная отправка в Bitcoin Core 31.2 получила потолок: в очереди транзакций, которые ещё не вернулись из сети, может быть не больше 10 000 записей. Когда она заполнена, новые отправки отклоняются, и освобождать её приходится вызовом abortprivatebroadcast (#35406). Биты версии 5–28 по BIP 323 больше не считаются сигналами софтфорков.
Bitcoin Core 32.1 устраняет риск утечки IP-адреса отправителя при приватной отправке: после неудачного соединения v2 повторная попытка по v1 могла идти напрямую, минуя Tor. Значение -maxconnections по умолчанию выросло со 125 до 200, а исходящая ретрансляция транзакций ограничивается теперь общей очередью, а не отдельно для каждого пира.
За интенсивным чтением и записью на диск при обычной работе стоял баг, исправленный в Bitcoin Core 29.4: база chainstate постоянно перезаписывала большие свои части. Теперь seek compaction в LevelDB отключён, а chainstate регулярно уплотняется (#35465).
Перезапись chainstate на диске прекратилась в Bitcoin Core 30.3. Устранены также падение feebumper, когда суммарная комиссия повышения недоступна (#34870), и баг выбора монет, вычислявший сумму как логическое значение (#34888). В PSBT публичные ключи MuSig2 теперь проверяются при десериализации pubnonce и частичных подписей (#34219).
Утечка IP-адреса в -privatebroadcast устранена в Bitcoin Core 31.1: часть соединений шла через открытый интернет вместо включённой анонимной сети. Обновление также прекращает перезапись chainstate, из-за которой диск работал без передышки, и отвергает пустой список публичных ключей при агрегации ключей MuSig2 (#35316).
При неудачном рукопожатии v2 Bitcoin Core 31.0 может выдать IP-адрес отправителя: с -privatebroadcast повторная попытка по v1 идёт мимо Tor-прокси, прямо к пиру. Вероятнее всего, это спровоцирует вредоносный пир, который намеренно обрывает рукопожатие. До выхода 31.1 можно отключить функцию, задать -v2transport=0 или пустить исходящий IPv4/IPv6 через Tor.
Релизы Bitcoin Core после 0.14.0 и до 29.0 при проверке специально созданного невалидного блока могли читать освобождённую память, и узел падал. Опасность CVE-2024-52911 оценена как высокая, хотя атакующему придётся потратить настоящее доказательство работы на вершине цепочки; удалённое выполнение кода считается маловероятным. Сообщил о проблеме Cory Fields, исправление вошло в 29.0.
Кластерный мемпул сменил старую архитектуру в Bitcoin Core 31.0: вместо лимитов на предков и потомков теперь кластеры не более 64 транзакций и 101 кБ, а исключение CPFP carveout убрано. -dbcache по умолчанию вырос до 1024 МиБ на машинах с ОЗУ от 4096 МиБ, а новая опция -privatebroadcast отправляет транзакции из sendrawtransaction только через Tor или I2P.
Два сбоя с безымянными кошельками чинит Bitcoin Core 28.4: при миграции устаревшего кошелька (#34156) и в createfromdump, где при ошибке удалялся каталог wallets (#34215). Кроме того, из chainparams убран один DNS-сид (#33723).
За транзакции, нарушающие консенсус, пиров в Bitcoin Core 29.3 больше не наказывают (#33050). При проверке появился кэш midstate sighash на каждый вход для legacy, P2SH и segwit v0 (#32473), а вырезание witness теперь обнаруживается без повторного прогона Script (#33105). Из addPackageTxs в майнере убрано переполнение беззнакового целого (#33475).
Сбой миграции безымянных устаревших кошельков устранён в Bitcoin Core 30.2 (#34156), а createfromdump при ошибке на таком кошельке больше не удаляет каталог wallets (#34215). Ctrl-C теперь не подвешивает программу во время ожидающих вызовов IPC (#33511).
В редких случаях неудачная миграция wallet.dat в Bitcoin Core 30.0 или 30.1 стирает все файлы в каталоге кошельков, и средства оказываются под угрозой. Разработчики отозвали эти сборки и просят до выхода 30.2 не запускать миграцию через GUI или RPC. Проблема возникает только с безымянным wallet.dat по умолчанию, который не удаётся мигрировать или загрузить; остальных пользователей она не касается.
Кошельки в Bitcoin Core 30.1 больше не учитывают неподтверждённые монеты TRUC, у которых есть предки (#33528). В IPC опции теперь работают без аргумента -m (#33229), логирование сообщений обходится дешевле (#33517), а выполняющиеся вызовы waitNext можно отменить (#33676).
Специально созданные нестандартные транзакции могли занимать узел Bitcoin Core на несколько секунд каждая, причём отправителя не отключали, и так атакующий мог задерживать распространение блоков. О CVE-2025-46598 низкой опасности сообщил Antoine Poinsot; в v30.0 последствия смягчены за счёт сокращения худшего времени проверки.
Блоки больше 1 ГБ могли переполнить проверку размера на 32-битных узлах Bitcoin Core и уронить их при записи на диск, но только в виде компактного блока и только у жертвы с -maxmempool выше 3 ГБ и 1 ГБ транзакций в мемпуле. CVE-2025-46597 низкой опасности нашёл Pieter Wuille; в 29.1 и 30.0 её закрыли ограничением -maxmempool на 32-битных системах.