Node.js выпустил обновления безопасности для веток 22.x, 24.x и 26.x
Разработчики Node.js закрыли десять уязвимостей, включая четыре проблемы высокого уровня опасности и риск удалённого выполнения кода.
21 октября команда Node.js выпустила обновления безопасности для поддерживаемых веток 22.x, 24.x и 26.x. В релизах исправили десять уязвимостей: четыре получили высокий уровень опасности, три отнесли к среднему, ещё три — к низкому.
Самой серьёзной проблемой стала уязвимость CVE-2026-111497 в декодере Brotli. Ошибка позволяет записывать данные за пределами выделенной области памяти и при определённых условиях может привести к удалённому выполнению кода. Уязвимость затрагивает все три ветки Node.js.
Проблемы с TLS и DNS
Две уязвимости связаны с проверкой имени узла в TLS-сертификатах. Ошибка CVE-2026-105483 возникает при обработке IP-адресов, записанных с использованием полноширинных цифр Unicode, и касается веток 24.x и 26.x. CVE-2026-106069 затрагивает все три версии и связана с именами узлов, которые нестандартным образом преобразуются в IP-адреса.
Ещё одна проблема высокого уровня, CVE-2026-105482, обнаружена в функции dns.resolve(). Она обрезала DNS-имена, содержащие нулевой байт, из-за чего приложение могло получить адрес другого имени, отличного от переданного. Уязвимость присутствует в Node.js 22.x, 24.x и 26.x.
Исправления среднего и низкого уровня опасности
К числу проблем среднего уровня относятся CVE-2026-105481, из-за которой HTTP-клиент в keep-alive-соединениях мог обработать ответ, сформированный ещё до отправки запроса, а также CVE-2026-106072 — ошибка проверки TLS-сертификатов для IPv4-адресов в нестандартной записи.
Уязвимость CVE-2026-106074 затрагивает генерацию случайных значений. В некоторых сценариях crypto.randomUUID() и crypto.randomInt() могли повторно использовать одни и те же значения в разных процессах из-за сохранения кэша энтропии в снимках состояния приложения и автономных исполняемых файлах.
Три исправления с низким уровнем опасности касаются обработки ZIP-файлов и модели разрешений Node.js. В частности, разработчики устранили ошибки проверки доступа к файловой системе при использовании шаблонов путей и функции fs.realpathSync().
Кроме того, в обновлениях изменили встроенные зависимости, включая c-ares и Undici, а для отдельных веток — OpenSSL и SQLite. В релизы также вошли обновления списка доверенных удостоверяющих центров после компрометации промежуточного центра eMudhra.
Какие версии обновились
21 октября вышли следующие исправленные версии:
- Node.js 22.22.1;
- Node.js 24.12.1;
- Node.js 26.12.1 — текущая ветка (Current).
Набор исправлений зависит от ветки: часть проблем с IP-адресами, ZIP-файлами и ограничениями доступа относится только к отдельным версиям. Поэтому администраторам следует проверить фактически установленную версию Node.js во всех окружениях — на серверах, в Docker-образах и сборках CI/CD — и убедиться, что после обновления используется исправленный релиз.
Команда Node.js также напоминает, что ветки с истёкшим сроком поддержки не получают регулярные исправления безопасности и не должны использоваться в рабочих системах.
Сообщить о проблеме в публикации
Обращение принято Обращение будет рассмотрено. По результатам проверки публикация может быть исправлена, дополнена, временно скрыта или удалена.