Рекомендуем
VPS на Windows и Linux — от 49 ₽ за 7 дней Быстрый запуск сервера на NVMe для сайтов, ботов и других задач.
Выбрать VPS

Node.js 26.8.2 — Undici 8.10.2, OpenSSL 3.5.8 и обновлённый сетевой стек

9 сентября 2026 года вышло обновление Node.js до версии 26.8.2. Это был очередной патч в рамках ветки Current. Основные изменения связаны с обновлением библиотек Undici до версии 8.10.2 и OpenSSL до версии 3.5.8. Также был осуществлён переход на npm 11.19.1. Эти обновления особенно важны для сетевых приложений, WebSocket и криптографического стека, так как они затрагивают ключевые компоненты, используемые в этих областях.

Node.js 26.8.2
Node.js 26.8.2

Node.js 26.8.2 сосредоточен на зависимостях и обслуживании ветки Current

Node.js 26.8.2 не добавляет крупного нового JavaScript API и по масштабу заметно отличается от функциональных минорных выпусков. Релиз обновляет ключевые встроенные зависимости, корректирует документацию и сборочную инфраструктуру, а также уточняет политику проекта в отношении уязвимостей экспериментальных возможностей.

На 10 сентября 2026 года версия 26.8.2 указана на официальном сайте как актуальный выпуск ветки Current. Для производственных систем, которым нужен длительный цикл поддержки, основной LTS-веткой пока остаётся Node.js 24.x; перевод Node.js 26 в Active LTS запланирован на 28 октября 2026 года.

По сравнению с 26.8.1 новый выпуск значительно содержательнее. Node.js 26.8.1 был внеплановым исправлением, устранявшим ошибочную маркировку версии как alpha при выполнении node --version, тогда как 26.8.2 обновляет сразу несколько компонентов среды выполнения.

КомпонентСостояние в Node.js 26.8.2Практический смысл
Node.js26.8.2 CurrentПатч-релиз текущей ветки
Undici8.10.2Исправления HTTP/WebSocket, включая опубликованные проблемы безопасности
OpenSSL3.5.8Security patch release upstream
npm11.19.1Актуальная версия npm, включённая в поставку Node.js 26.8.2
Corepack0.36.0Обновление инструмента управления пакетными менеджерами
simdjson4.6.9Обновление встроенной зависимости
Perfetto58.2Обновление компонентов трассировки

Undici 8.10.2 закрывает проблемы WebSocket и HTTP-кэширования

Самое практичное изменение Node.js 26.8.2 — переход встроенного HTTP-клиента Undici на версию 8.10.2. Именно эта версия отмечена разработчиками Undici как исправленная сразу для нескольких опубликованных в начале сентября проблем.

Одна из них позволяла удалённому WebSocket-серверу завершить процесс Node.js во время handshake. Если сервер возвращал заголовок Sec-WebSocket-Protocol с протоколом, который клиент не запрашивал, внутри Undici возникало необработанное исключение. Для приложений, подключающихся к недоверенным или скомпрометированным WebSocket-серверам, это создавало сценарий удалённого отказа в обслуживании.

Вторая проблема затрагивала обработку permessage-deflate. Специально сформированное сжатое WebSocket-сообщение могло привести к необработанной ошибке внутреннего InflateRaw и также завершить весь процесс Node.js. В официальном advisory отдельно указано, что это касается и встроенного в Node.js globalThis.WebSocket.

Ещё одно исправление связано с interceptors.cache(). В уязвимых версиях Undici ответ на небезопасный HTTP-метод — например, POST, PUT, PATCH или DELETE — при определённых условиях мог попасть в кэш, после чего повторный запрос обслуживался из него вместо обращения к серверу. Для этой ошибки опубликован CVE-2026-85008; исправленными версиями названы в том числе Undici 8.10.2.

Поэтому обновление особенно актуально для сервисов, которые:

  • используют встроенный fetch() и другие возможности, зависящие от Undici;
  • работают с WebSocket на стороне клиента;
  • подключаются к внешним или пользовательским WebSocket-endpoint;
  • применяют HTTP cache interceptor Undici;
  • автоматически переподключаются к WebSocket после разрыва соединения.

Node.js 26.8.2 не позиционируется проектом как отдельный security-релиз Node.js, однако включение исправленной версии Undici делает обновление практически значимым с точки зрения безопасности сетевого кода.

OpenSSL 3.5.8 обновляет криптографическую основу Node.js

В Node.js 26.8.2 встроенный OpenSSL обновлён до версии 3.5.8. Сам проект OpenSSL классифицирует 3.5.8 как security patch release и указывает, что наиболее серьёзные исправленные уязвимости имеют уровень Moderate.

В upstream-релизе OpenSSL 3.5.8 устранены, среди прочего, double free при обработке QUIC INITIAL-пакета, переполнение буфера в CMS key unwrapping, некорректное разыменование указателя в CMP и неконтролируемый рост памяти в очереди входящих данных QUIC.

Для Node.js смысл обновления заключается прежде всего в переходе на более свежую исправленную базу криптографической библиотеки. При этом список CVE OpenSSL нельзя автоматически считать списком уязвимостей самого Node.js: реальная применимость зависит от того, какие API OpenSSL использует среда выполнения и доступен ли соответствующий код конкретному приложению.

Для серверов с TLS, криптографическими операциями, сертификатами или экспериментальными сетевыми возможностями переход на Node.js 26.8.2 выглядит предпочтительнее сохранения раннего 26.8.x.

Server.prototype._listen2 получил документированную депрекацию

Node.js 26.8.2 также помечает Server.prototype._listen2 из node:net как устаревающий внутренний интерфейс. Для ветки 26.x это документальная депрекация: изменение предупреждает разработчиков не строить пользовательский код вокруг приватного метода, имя которого уже подчёркивает его внутренний статус.

Для обычных приложений последствий почти нет. Серверный код должен использовать публичный server.listen(), а библиотеки, которые напрямую обращаются к _listen2, стоит проверить и подготовить к дальнейшим изменениям в будущих основных версиях Node.js.

Это особенно касается низкоуровневых фреймворков, сетевых обёрток и инструментов, которые могли обращаться к внутренним методам ради нестандартного управления сокетами.

Изменена политика обработки уязвимостей экспериментальных функций

Ещё одно заметное изменение относится не к поведению приложений, а к правилам самого проекта Node.js. Разработчики уточнили, какие отчёты об ошибках экспериментальных возможностей должны рассматриваться как security vulnerabilities.

Для возможностей со статусом Stability 1.0 и 1.1, включаемых через экспериментальные runtime-флаги, ошибка должна затрагивать стабильную часть Node.js или создавать последствия даже без включения экспериментальной функции, чтобы автоматически попадать в процесс обработки как уязвимость безопасности.

Отдельно уточнена позиция по экспериментальным QUIC/H3: проблемы, существующие только при включённом --experimental-quic, могут рассматриваться как обычные баги, если они не компрометируют другие части Node.js при выключенной экспериментальной функции.

Для разработчиков приложений это не означает ослабление защиты уже стабильных API. Изменение описывает границы security-процесса проекта для функций, которые всё ещё находятся в активной разработке и явно требуют экспериментального включения.

Обновлены npm, Corepack и сборочная инфраструктура

В поставку Node.js 26.8.2 включён npm 11.19.1. Эта версия npm сама по себе является небольшим исправляющим выпуском: основное изменение связано с корректной обработкой явно заданных целей команды npm pack, а также с обновлением зависимостей npm.

Corepack обновлён до 0.36.0. Кроме того, Node.js обновляет simdjson до 4.6.9, Perfetto до 58.2 и внутреннюю версию zlib.

Есть и несколько изменений для сборочной инфраструктуры. Для RISC-V 64 активированы корректные флаги по умолчанию и скорректированы отдельные проверки, а в Windows-сборках снято ограничение параллелизации LTO. Для большинства разработчиков эти изменения останутся незаметными, но они упрощают сопровождение официальных и специализированных сборок Node.js.

Обновление до Node.js 26.8.2

Node.js версии 26.8.2 можно рассматривать как обновление с улучшенной практичностью для сетевых приложений. В этом релизе не появилось новых пользовательских API, но были обновлены две критически важные зависимости для runtime — Undici и OpenSSL.

Для проектов, которые уже функционируют на Node.js 26.x, рекомендуется обновлять версии до 26.8.0 или 26.8.1 только после проведения стандартных тестов. Особое внимание следует уделить сервисам, которые используют WebSocket, встроенный fetch(), Undici cache interceptor, TLS и внешние сетевые соединения.

Через NVM конкретную версию можно установить отдельно:

nvm install 26.8.2
nvm use 26.8.2
node --version
npm --version

Ожидаемый результат — Node.js v26.8.2 и npm 11.19.1.

Для организаций, придерживающихся консервативного подхода к разработке и предпочитающих только долгосрочные стабильные версии (LTS), переход на ветку 26.x пока не является обязательным. Node.js 26 останется текущей версией до конца октября 2026 года. Однако для тех, кто уже проводит тестирование будущей LTS-ветки или использует её в своей рабочей среде, версия 26.8.2 предпочтительнее предыдущих 26.8.x, так как она включает обновлённые версии Undici и OpenSSL.

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

Вам также может понравиться