Понять хранение · Доступ и полномочия

Когда имя кошелька превращается в команду

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

РЕДАКЦИОННЫЙ ОБЗОР · Подготовлен редакцией проекта на основе указанных источников.

Уязвимость с несколькими обязательными условиями

Ошибка не позволяла случайному участнику сети атаковать узел через обычное P2P-соединение. Для её использования требовались не-Windows система, настроенный параметр -walletnotify, авторизованный RPC-доступ и право создавать кошельки.

Атакующий должен был создать кошелёк со специально составленным именем, получить для него адрес и вызвать уведомление транзакцией. Только сочетание этих условий открывало путь к выполнению дополнительной команды.

Для чего нужен walletnotify

Оператор Bitcoin Core может указать команду, которую программа выполняет при новой транзакции кошелька. Механизм используют для внутреннего учёта, уведомлений и интеграции узла с другими системами.

В командный шаблон разрешено подставлять имя кошелька. Оно должно оставаться обычным текстом, но изменение, появившееся в Bitcoin Core 24.0, позволило отдельным символам нарушить экранирование и повлиять на структуру команды.

Почему авторизованный RPC всё равно требует границ

RPC-пользователь уже имеет доступ к некоторым функциям узла, но возможность создать кошелёк не равна праву выполнять произвольные команды с полномочиями процесса Bitcoin Core.

Такая граница особенно важна, когда RPC получает панель управления, внутренний сервис или плагин. Ошибка позволяла перейти от разрешённого действия внутри Bitcoin Core к действию за пределами программы.

Исправление вошло в код, но это ещё не обновление каждого узла

Разработчики вернули буквальную подстановку: специальные символы в имени кошелька больше не должны менять структуру команды. В тесты добавили намеренно опасное имя, а исправление после рецензирования объединили с основной веткой 2 сентября 2026 года.

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

Что проверить оператору узла

Если Bitcoin Core используется как обычный настольный кошелёк и RPC не доступен другим приложениям, описанный сценарий обычно неприменим. В серверной инфраструктуре следует проверить использование -walletnotify, состав RPC-пользователей, их права на создание кошельков и полномочия системной учётной записи Bitcoin Core.

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

Разрешение создать кошелёк не должно превращаться в разрешение выполнять команды операционной системы.

Источники и проверка

  1. Bitcoin Core PR #36048: исправление подстановки имени кошелька
  2. Bitcoin Optech Newsletter #422: описание исправления
  3. Bitcoin Core: официальные выпуски

Технический материал для операторов узлов. Описанный сценарий не доступен обычному P2P-участнику без авторизованного RPC-доступа и специальной конфигурации walletnotify.

Если не указано иное, текст, выводы, структура и редакционная компоновка созданы редакцией проекта. Факты, цитаты и материалы источников принадлежат их авторам и правообладателям.

Вернуться к рубрике