НовостиКриптовалютыBitcoin Core 32.0 готовится к релизу 10 октября: ускоренная проверка блоков и исправления безопасности

Bitcoin Core 32.0 готовится к релизу 10 октября: ускоренная проверка блоков и исправления безопасности

Автор: Decrypt·

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

  • Bitcoin Core 32.0 в понедельник вошел в стадию тестирования release-кандидата; разработчики ориентируются на 10 октября для финального релиза, хотя итоги тестирования могут сдвинуть сроки.
  • Обновление ускоряет проверку блоков за счет параллельного чтения информации из базы данных, снижая нагрузку на операторов узлов без изменения скорости создания блоков Bitcoin.
  • Исправление безопасности предотвращает вызов команд через специально созданные имена кошельков на системах, отличных от Windows, где аутентифицированный пользователь мог создавать кошельки, а функция walletnotify была настроена на выполнение команд.
  • Контрибьютор Мэтью Зипкин обнаружил уязвимость исчерпания памяти в новом HTTP-сервере Bitcoin Core при аудите с помощью ИИ-модели Kimi K3; ревью показало, что неаутентифицированные запросы также могут вызывать рост памяти при включенном интерфейсе REST.
  • После доработки патча 16 неаутентифицированных соединений вызвали рост памяти примерно на 3 МБ за 90 секунд по сравнению с 3,2 ГБ ранее; исправление было включено в Bitcoin Core 32.0 5 сентября.
Bitcoin Core 32.0 готовится к релизу 10 октября: ускоренная проверка блоков и исправления безопасности

Bitcoin Core 32.0 — open-source ПО, позволяющее компьютерам независимо проверять Bitcoin-платежи, — в понедельник вошел в стадию тестирования release-кандидата, согласно графику проекта. Release-кандидаты — это предрелизные версии, публикуемые для того, чтобы тестировщики могли выявить оставшиеся проблемы до финальной сборки. Разработчики ориентируются на 10 октября для выпуска готовой версии, хотя итоги тестирования могут сдвинуть эти сроки.

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

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

Безопасность — второй приоритет релиза. Одно исправление предотвращает вызов команд на компьютере узла через специально созданные имена кошельков. Уязвимость затрагивала системы, отличные от Windows, в случаях, когда аутентифицированный пользователь мог создавать кошельки, а функция walletnotify была настроена на выполнение команд при транзакциях кошелька. Этот класс ошибок привлекает пристальное внимание, поскольку он стирает границу между данными и инструкциями: имя кошелька, обычно являющееся просто меткой, могло взаимодействовать с выполнением команд в walletnotify, и патч отсекает этот путь.

Отдельный патч устраняет чрезмерное использование памяти в новом HTTP-сервере проекта, обрабатывающем запросы подключенных приложений. Контрибьютор Мэтью Зипкин, публикующийся под ником pinheadmz, описал «сценарий исчерпания памяти» в своем предложении патча. Его первоначальная оценка ограничивала риск аутентифицированными клиентами.

Зипкин сообщил, что обнаружил уязвимость при аудите нового HTTP-сервера Bitcoin Core с помощью Kimi K3 — ИИ-модели, которую также использовала Bitcoin Red Team для поиска уязвимостей в Bitcoin-ПО. Более раннее исправление, пояснил он, устранило часть проблемы, однако способ исчерпать доступную память компьютера — состояние «OOM» (out-of-memory, нехватка памяти) — оставался.

В ходе ревью того же патча пользователь GitHub jeanpablojp обнаружил, что запросы без учетных данных также могут вызывать рост памяти, когда включен интерфейс REST. После того как Зипкин доработал патч, ревьюер сообщил, что 16 неаутентифицированных соединений вызвали рост памяти примерно на 3 МБ за 90 секунд по сравнению с 3,2 ГБ до изменения. Доработанный патч был включен в Bitcoin Core 32.0 5 сентября в рамках постоянной работы по повышению безопасности ПО. Случай с неаутентифицированными запросами расширил проблему за пределы первоначальной оценки, поскольку такие запросы не требуют доверенного пользователя, вошедшего в систему.

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