Команда Bitcoin Core 28 октября раскрыла три уязвимости и выпустила исправленные версии 29.5, 30.4, 31.2 и 32.1. Две ошибки получили среднюю степень опасности, третья — низкую. Речь идёт о программе Bitcoin Core, а не о компрометации блокчейна Bitcoin.

Первая ошибка затрагивала узлы на Windows, macOS и BSD, но не Linux. Подключённый вредоносный узел мог отправлять срочные TCP-данные и обходить ограничение очереди входящих сообщений, пока Bitcoin Core не исчерпает память и не завершит работу. Разработчики называют такую атаку простой; исправление вошло во все четыре точечных выпуска.

Вторая уязвимость работала медленнее и не зависела от операционной системы. Злоумышленник мог притвориться старым узлом без поддержки BIP 31, почти не читать сообщения и оставаться подключённым. Очередь при этом росла без ограничения — до 2 МБ в час для одного входящего соединения и до 5 МБ для исходящего, — что со временем тоже могло лишить узел памяти.

Третья ошибка находилась в файлах данных для отката блоков. Теоретически майнер мог заполнить такой файл больше чем на 4 ГБ, вызвать переполнение позиции и добиться остановки узла при точно подобранной реорганизации цепочки. Для 64-битных систем разработчики считают практическую атаку крайне маловероятной: потребовались бы несколько тысяч специально созданных блоков и точная реорганизация. Новые версии исправили этот сценарий, но 32-битные системы и узлы, хранящие блоки на FAT32, всё ещё остаются затронуты.

Все три дефекта первоначально нашёл автоматизированный проект Project Loupe, после чего находки проверили специалисты; две ошибки позднее независимо обнаружили другие исследователи. Выпуск стал первым практическим применением новой политики Bitcoin Core: легко обнаруживаемые уязвимости теперь раскрывают сразу после появления исправлений во всех поддерживаемых ветках.