Срез рынка · ↗Курс Bitcoin$77,735Хешрейт сети936 EH/sСложность127.45 T

Пулы и выплаты

Bitcoin Core добавил защиту от поддельных строк в журналах узла

Публикация источника: 2026-09-30 · Редакционный анализ опубликован: 2026-10-01

Журнал теперь экранирует встроенные переводы строки из недоверенных данных, поэтому отклонённые RPC-методы или строки кошелька не могут выглядеть как настоящие сообщения узла. Патч в master, но ещё не в финальном релизе.

Обновление Linux в терминале; контекстное фото к исправлению журналирования Bitcoin Core.
Иллюстративное архивное фото, а не конкретное устройство или объект из новости. Преобразовано в WebP; при необходимости уменьшен размер. Solijon Solayev · CC BY-SA 4.0

Анализ и практические выводы

В этом разделе — наш анализ и условные расчёты, отдельно от сообщения источника.

Пользовательский ввод может привести к появлению поддельного сообщения в файле debug.log.

Разработчики Bitcoin Core объединили запрос на извлечение 35833 30 сентября 2026 года. Проблема заключалась в том, что контролируемый пользователем текст достигал сообщений журнала со встроенным символом новой строки. Пользователь RPC с ограниченными правами мог указать имя отклоненного метода, или ввод, связанный с кошельком, мог ввести предупреждение, а новая строка позволяла начинать следующий текст с новой строки. Эту вторую строку можно отформатировать так, чтобы она напоминала настоящую ошибку Bitcoin Core, даже если узел не создавал событие.

Системный администратор за работой; контекстное фото о целостности журналов и работе узлов.
Иллюстративное архивное фото, а не конкретное устройство или объект из новости. Преобразовано в WebP; при необходимости уменьшен размер. Phil Hollenback · CC BY 2.0

Атака повлияла на интерпретацию журнала, а не на консенсус

Продемонстрированная проблема заключалась в внедрении журнала. Это может ввести в заблуждение оператора, инструмент мониторинга или специалиста по реагированию на инциденты, читающего файл debug.log. Запрос на включение не описывает способ изменения блоков, кражи вознаграждений за майнинг, обхода доказательства работы или изменения состояния консенсуса. Это также не представлено как удаленное выполнение кода без аутентификации. Для продемонстрированных случаев требовался ограниченный доступ RPC или другой путь, по которому контролируемые данные помещаются в зарегистрированное сообщение.

Встроенные символы новой строки теперь экранируются.

Объединенная реализация изменяет регистратор, поэтому встроенные символы новой строки представляются как экранированная последовательность байтов, например \x0a. Обычный конечный символ новой строки удаляется перед экранированием, и регистратор централизованно добавляет последний признак конца строки. В результате один вызов журнала занимает одну физическую строку, и контролируемый текст не может создать дополнительное сообщение с собственной меткой времени или префиксом серьезности. Печатные символы и UTF-8 остаются доступными для диагностики.

Отклоненные методы RPC были частью репродуктора

Демонстрация запроса на включение запускала узел regtest с белым списком RPC и вызывала запрещенный метод, имя которого содержало новую строку, за которой следовал текст, напоминающий ошибку ConnectTip. До исправления кованая часть выводилась в отдельную строку. После исправления новая строка отображалась в предупреждении как экранированные данные. Авторизация по-прежнему отклонила этот метод; проблема заключалась в визуальной подлинности дополнительной строки журнала, а не в доступе к запрещенной команде RPC.

Пути к кошельку и предупреждения о запуске получили регрессионную защиту

Заключительные тесты охватывают отклоненные имена методов RPC, входные данные для создания кошелька и предупреждение при запуске об исчезнувшем пути к сохраненному кошельку. Рецензенты обнаружили, что промежуточный подход SplitLines может частично воссоздать проблему, поэтому перед слиянием этот подход был удален. Последний патч использует центральное экранирование и проверяет, чтобы поддельный текст не отображался как отдельное предупреждение или ошибка. Эта история проверок показывает, почему операторам следует оценивать объединенные различия, а не более раннюю версию.

Операторы пулов часто автоматизируют обработку журналов.

Пулы для майнинга и шлюзы для индивидуального майнинга обычно используют Bitcoin Core наряду с серверами шаблонов, системами выплат и агентами мониторинга. Их оповещения могут анализировать файл debug.log на предмет сбоев цепочки, мемпула, кошелька или сети. Поддельная линия может спровоцировать ложный инцидент, испортить контрольный журнал или отвлечь респондентов. После развертывания версии, содержащей исправление, встроенные символы новой строки отображаются экранированными, поэтому любой анализатор, который ожидает многострочные сообщения, должен быть проверен и скорректирован.

Патч прошел проверку и автоматические проверки.

Окончательное изменение было добавлено в основную ветку как коммит d4b0e1e после проверки, и GitHub сообщает о пройденных 27 проверках. Запрос на включение содержит два коммита: тесты, характеризующие затронутые входные данные, и изменение журнала, которое экранирует встроенные символы новой строки. Ранее проблемы CI относились к промежуточным версиям и были устранены перед объединением. На главной странице не сказано, что патч включен в подписанную финальную версию Bitcoin Core.

Объединенный код — это не то же самое, что выпущенный двоичный файл.

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

Практические шаги для групп горнодобывающей инфраструктуры

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

Источник: Bitcoin Core ↗

Калькулятор майнинга ↗

Ещё в этой рубрике