В Node.js исправили 10 уязвимостей — в том числе возможное RCE в Brotli

3 мин
В Node.js исправили 10 уязвимостей — в том числе возможное RCE в Brotli

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. «Швейцарский нож РБПО: карта инструментов безопасной разработки на практике». Записаться

Цельный список открытых уроков по разработке и не только смотрите в календаре.

Поделиться

TelegramVK

Продолжить читать