Из-за временных ограничений на территории РФ наблюдаются проблемы с оплатой. Если платёж не проходит, оставьте запрос в службу поддержки.Служба поддержки работает 24/7 — мы всегда на связи по вопросам хостинга и серверов.Открыт прием заявок на аренду выделенных серверов и размещение оборудования в дата-центре.Напоминаем: рекомендуем включить резервное копирование для дополнительной защиты данных.Доступна новая линейка VPS/VDS с NVMe-дисками и увеличенной производительностью.Технические работы на части серверов завершены. Все сервисы работают в штатном режиме.
Статья7 мин чтенияПросмотры3

Уязвимость Node.js CVE-2026-111497: что срочно обновить и проверить

Ошибка в распаковке Brotli может привести к остановке приложения, раскрытию данных из памяти или выполнению кода. Показываем исправленные версии Node.js и порядок проверки серверов, контейнеров и интеграций. Отдельно — важное обновление Windows-сборок PHP.

Комментарии 0

Иллюстрация: администратор за рабочим столом внимательно проверяет информацию на мониторе
В этой статье

Если ваш сайт, API, бот или интеграция работают на Node.js, поручите администратору сегодня проверить обновления безопасности. Уязвимость CVE-2026-111497 в распаковке Brotli может привести к остановке приложения, раскрытию памяти процесса или удалённому выполнению кода. Исправления доступны с 21 октября 2026 года; если они ещё не установлены, откладывать обновление не стоит.

  • Проверьте все экземпляры Node.js, в том числе внутри контейнеров и фоновых сервисов.
  • Установите исправленный выпуск совместимой поддерживаемой ветки: 22.23.4, 24.22.1 или 26.12.1 — либо более поздний с исправлением.
  • Перезапустите затронутые приложения и подтвердите, что все рабочие процессы используют обновлённую среду.

Что произошло и насколько это опасно

В официальном уведомлении Node.js от 21 октября описана ошибка декодера Brotli — библиотеки для распаковки сжатых данных. Специально сформированный поток способен вызвать запись за пределами выделенного буфера. Условие риска: приложение или его библиотека передаёт в уязвимый декодер данные, которые контролирует злоумышленник.

Разработчики Node.js присвоили проблеме уровень High. В GitHub Advisory Database для уязвимости Brotli указаны CVSS 4.0 — 9,2 и уровень Critical. Это оценки разных источников; обе дают основание приоритетно заняться обновлением.

Само уведомление об уязвимости не доказывает взлом конкретного сервера. Обновление закрывает уязвимый компонент, а проверка возможной компрометации — отдельная задача.

Какие версии Node.js нужно обновить

Ветка Node.js

Первый исправленный выпуск

Что установить

22.x

22.23.4

Исправленный выпуск своей поддерживаемой ветки или более поздний с этим исправлением

24.x

24.22.1

Исправленный выпуск своей поддерживаемой ветки или более поздний с этим исправлением

26.x

26.12.1

Исправленный выпуск своей поддерживаемой ветки или более поздний с этим исправлением

Исправление подтверждено в официальных выпусках Node.js 22.23.4, 24.22.1 и 26.12.1. Переходить с 22.x сразу на 26.x только ради этого исправления не требуется: сначала выбирают совместимый обновлённый выпуск своей поддерживаемой ветки.

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

Кого это касается

Проверьте серверные приложения Node.js: API, обработчики интеграций, ботов, серверный рендеринг, фоновые обработчики и среды сборки. Для магазина на 1С-Битрикс это повод уточнить состав инфраструктуры: рядом с PHP-сайтом могут работать отдельные сервисы Node.js.

Опасный путь бывает как входящим, так и исходящим: приложение может распаковывать тело запроса или ответ внешнего сервера. Это отдельно разъясняет бюллетень Vercel от 26 октября. Поэтому фильтрация входящих запросов сама по себе не закрывает все варианты обработки недоверенных данных.

Что поручить администратору прямо сейчас

  • Составить список затронутых сервисов. Включить production, резервные экземпляры, контейнеры, фоновые задачи и средства сборки. Для каждого зафиксировать версию Node.js, способ запуска и ответственного.
  • Проверить конфигурацию и резервные копии данных. Сохранить параметры запуска и подготовить порядок восстановления. По возможности проверить обновление в тестовой среде; при нескольких экземплярах обновлять их поочерёдно с контролем готовности.
  • Установить исправленную среду Node.js из доверенного источника. Обновление только npm-зависимостей приложения не заменяет исправление встроенного декодера среды выполнения.
  • Перезапустить все затронутые процессы и фоновые обработчики по принятому порядку развёртывания. Для одиночного сервиса может понадобиться короткое окно обслуживания.
  • Проверить результат: версию у новых рабочих процессов, автозапуск, API, вход в аккаунт, формы и обмен с внешними системами. Убедиться, что старые экземпляры больше не принимают трафик.

Как проверить версию и не получить ложную уверенность

Начальную проверку можно выполнить в терминале командой:

node --version

Она показывает версию Node.js из текущего окружения терминала. Служба systemd, приложение PM2 и контейнер могут использовать другой исполняемый файл. Проверьте их отдельно, под соответствующим пользователем и с учётом конфигурации запуска.

Для диагностики непосредственно в приложении доступны process.version и process.execPath: версия среды и путь исполняемого файла. Их назначение описано в документации Node.js. Используйте защищённую административную диагностику; публиковать такую информацию на открытой странице сайта не нужно.

Особое внимание: Docker и PM2

Контейнеры. Обновление Node.js на хосте не меняет копию внутри образа. Обновите используемый базовый образ или закреплённый digest, пересоберите приложение и разверните новые контейнеры с сохранением постоянных данных. Docker рекомендует пересобирать образы с обновлёнными зависимостями. Повторный запуск старого образа оставляет старую среду.

PM2. Проверьте интерпретатор приложения и автозапуск: после обновления они могут ссылаться на прежний путь Node.js. В документации PM2 отдельно указано, что после обновления Node.js нужно актуализировать startup script. Порядок перезапуска выбирайте для конкретного приложения, учитывая его режим работы.

Если обновить немедленно пока невозможно

Временные меры должны перекрывать именно распаковку недоверенных Brotli-данных. До установки исправления администратору стоит:

  • Ограничить или временно остановить соответствующие обработчики входящих данных, если это допустимо для сервиса.
  • Проверить внешние HTTP-загрузки и автоматическую распаковку ответов библиотеками; ограничить обращения к недоверенным источникам.
  • Усилить контроль ошибок распаковки, аварийных завершений и необычной активности процессов.

Из описанного разработчиками механизма следует: отключение выдачи Brotli-сжатых ответов в Nginx или CDN не гарантирует защиты декодера Node.js. Аналогично WAF перед сайтом не обязательно контролирует ответы, которые приложение загружает извне. Эти меры не заменяют исправление среды выполнения.

Что делать при подозрении на эксплуатацию

Проверьте неожиданные падения Node.js, изменения файлов и автозапуска, посторонние процессы и необычные сетевые соединения. Такие события требуют разбора, но сами по себе ещё не доказывают эксплуатацию этой CVE.

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

Важное дополнение для пользователей PHP

Ошибка находится в Brotli и не ограничивается Node.js. 26 октября команда PHP объявила об обновлённых Windows-сборках PHP 8.5.12-1, 8.4.27-1, 8.3.36-1 и 8.2.35-1 с исправленной Brotli 1.2.1. В уязвимых Windows-сборках PHP декодер Brotli может вызываться через cURL при включённой автоматической распаковке HTTP-ответов; по умолчанию cURL её не включает, но приложения могут включать.

Суффикс -1 означает пересборку Windows-пакета с обновлёнными зависимостями: версия самого PHP runtime остаётся прежней. Это отдельная проверка для Windows. Для Linux и других продуктов сверяйтесь с уведомлениями поставщиков соответствующих пакетов; обновление Node.js не исправляет их автоматически.

Какой результат запросить владельцу проекта

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

Если ваш проект размещён в General iT, передайте запрос через личный кабинет: укажите услугу и приложение, для которого нужна проверка Node.js и Brotli. Пароли, токены и приватные ключи в обращение добавлять не нужно.

Сведения проверены 27 октября 2026 года. Основание — официальные уведомления Node.js, PHP и Vercel, записи о выпусках и документация разработчиков.

Обсуждение 0

Делись опытом и задавай вопросы. Комментарии без ссылок появляются после проверки редактором.

Пока никто не написал. Начни обсуждение.