21 октября команда Node.js выпустила обновления безопасности для веток 22.x, 24.x и 26.x. Разработчики закрыли десять уязвимостей, четыре из которых получили высокий уровень опасности. Среди наиболее серьёзных проблем — возможность удалённого выполнения кода через декодер Brotli, ошибки проверки TLS-сертификатов и некорректная обработка DNS-имён.
Исправления уже доступны, поэтому разработчикам и администраторам стоит проверить версии Node.js на своих серверах.
Какие уязвимости исправили
Четыре проблемы получили высокий уровень опасности (High).
Удалённое выполнение кода через Brotli (CVE-2026-111497). Ошибка в декодере Brotli позволяет записывать данные за пределами выделенной области памяти. При определённых условиях это может привести к удалённому выполнению кода. Уязвимость затрагивает все три поддерживаемые ветки: 22.x, 24.x и 26.x.
Обход проверки имени узла в TLS-сертификате (CVE-2026-105483 и CVE-2026-106069). Обнаружены две ошибки обработки IP-адресов, из-за которых Node.js в определённых ситуациях может некорректно проверять соответствие сертификата адресу сервера.
Первая связана с IP-адресами, записанными с использованием полноширинных цифр Unicode, и затрагивает Node.js 24.x и 26.x. Вторая возникает при обработке имён узлов, которые нестандартным образом преобразуются в IP-адреса, и присутствует во всех трёх ветках.
Некорректная обработка DNS-имён (CVE-2026-105482). Функция dns.resolve() обрезала имена, содержащие нулевой байт (NUL). Это могло приводить к разрешению другого имени, отличного от переданного приложением. Проблема затрагивает Node.js 22.x, 24.x и 26.x.
Что ещё вошло в обновления
Помимо уязвимостей высокого уровня опасности, разработчики устранили три проблемы среднего уровня (Medium):
CVE-2026-105481 — некорректная обработка HTTP-ответа в соединениях с keep-alive: клиент мог обработать ответ, записанный ещё до отправки запроса.
CVE-2026-106072 — ошибка проверки TLS-сертификатов при использовании IP-адресов IPv4 в нестандартной записи.
CVE-2026-106074 — повторное использование случайных значений crypto.randomUUID() и crypto.randomInt() в разных процессах из-за сохранения кэша энтропии в снимках состояния приложения и автономных исполняемых файлах.
Ещё три исправления с низким уровнем опасности (Low) касаются обработки ZIP-файлов и модели разрешений Node.js. В частности, устранены ошибки проверки доступа к файловой системе через шаблоны путей и fs.realpathSync().
Также обновлены встроенные зависимости: c-ares, Undici, а для отдельных веток — OpenSSL и SQLite. В состав релизов вошли изменения сертификатов доверенных удостоверяющих центров, связанные с компрометацией промежуточного центра eMudhra.
Какие версии нужно установить
21 октября вышли следующие релизы с исправлениями безопасности:
Node.js 22.23.4 — ветка LTS.
Node.js 24.22.1 — ветка LTS.
Node.js 26.12.1 — текущая ветка (Current).
Все три обновления устраняют уязвимости высокого уровня опасности. При этом набор исправлений различается: например, часть проблем с обработкой IP-адресов, ZIP-файлов и ограничениями доступа относится только к определённым веткам.
Проверить установленную версию можно командой:
node -vПосле обновления стоит убедиться, что исправленная версия используется не только локально, но и в рабочих окружениях, Docker-образах и сборках CI/CD.
Команда Node.js также напоминает, что версии с истёкшим сроком поддержки не следует использовать в рабочих системах: для них регулярные исправления безопасности больше не выпускаются.
Источники:Обновлять зависимости и закрывать известные уязвимости — только часть работы по обеспечению безопасности приложений. Важно также понимать, какие инструменты помогают находить проблемы на разных этапах разработки. Этой теме посвящён бесплатный вебинар:
16 ноября, 20:00. «Швейцарский нож РБПО: карта инструментов безопасной разработки на практике». Записаться
Полный список открытых уроков по разработке и не только смотрите в календаре.

2 часов назад
3



English (US) ·
Russian (RU) ·