Node.js Vulnerability CVE-2026-111497: What to Update and Check Immediately
A Brotli decompression error can cause application crashes, disclosure of data from memory, or code execution. We list the fixed Node.js versions and the procedure for checking servers, containers, and integrations. Separate section: important update for Windows PHP builds.

In this article
- Что произошло и насколько это опасно
- Какие версии Node.js нужно обновить
- Кого это касается
- Что поручить администратору прямо сейчас
- Как проверить версию и не получить ложную уверенность
- Особое внимание: Docker и PM2
- Если обновить немедленно пока невозможно
- Что делать при подозрении на эксплуатацию
- Важное дополнение для пользователей PHP
- Какой результат запросить владельцу проекта
- What Happened and How Dangerous It Is
- Which Node.js Versions Need Updating
- Who this affects
- What to assign to the administrator right now
- How to verify the version without false confidence
- Special attention: Docker and PM2
- If an immediate update is not possible
- What to do if exploitation is suspected
- Important note for PHP users
- What the project owner should obtain from the administrator
Если ваш сайт, 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 | Первый исправленный выпуск | Что установить |
|---|---|---|
|
| Исправленный выпуск своей поддерживаемой ветки или более поздний с этим исправлением |
|
| Исправленный выпуск своей поддерживаемой ветки или более поздний с этим исправлением |
|
| Исправленный выпуск своей поддерживаемой ветки или более поздний с этим исправлением |
Исправление подтверждено в официальных выпусках 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, записи о выпусках и документация разработчиков.
If your website, API, bot, or integration runs on Node.js, have your administrator check for security updates today. The CVE-2026-111497 vulnerability in Brotli decompression can lead to application crashes, process memory disclosure, or remote code execution. Fixes have been available since October 21, 2026; if they are not yet installed, do not delay the update.
- Check all Node.js instances, including those inside containers and background services.
- Install the fixed release of a compatible supported branch: 22.23.4, 24.22.1, or 26.12.1 — or a later version with the fix.
- Restart affected applications and confirm that all worker processes use the updated runtime.
What Happened and How Dangerous It Is
The official Node.js security advisory dated October 21 describes a flaw in its bundled Brotli decoder. A specially crafted stream can write beyond the bounds of an internal buffer. An application is exposed when it or one of its libraries passes attacker-controlled data to the vulnerable decoder.
Node.js developers have assigned the issue a High severity. In the GitHub Advisory Database, the Brotli vulnerability is rated CVSS 4.0 — 9.2 with a Critical level. These are assessments from different sources; both justify prioritizing an update.
The vulnerability notification itself does not prove that a specific server was compromised. Updating patches the vulnerable component, while checking for possible compromise is a separate task.
Which Node.js Versions Need Updating
Node.js branch | First patched release | What to install |
|---|---|---|
|
| A patched release of your supported branch or a later release with this patch |
|
| A patched release of your supported branch or a later release with this patch |
|
| A patched release of your supported branch or a later release with this patch |
The fix has been confirmed in the official releases Node.js 22.23.4, 24.22.1, and 26.12.1. There is no need to upgrade directly from 22.x to 26.x solely for this fix; instead, select a compatible updated release from your supported branch.
For branches that have reached end of life, plan a transition to a supported patched version. If Node.js is bundled within a ready-made product or a distribution package, verify the patch against the vendor's bulletin: the vendor may release its own builds and backport patches without changing the main version.
Who this affects
Check Node.js server applications: APIs, integration handlers, bots, server-side rendering, background workers, and build environments. For a 1C-Bitrix store, this is a reason to clarify the infrastructure composition: separate Node.js services may run alongside the PHP site.
The dangerous path can be either incoming or outgoing: an application may unpack the request body or the response from an external server. This is explained separately in the Vercel bulletin from October 26. Therefore, filtering incoming requests alone does not cover all scenarios for handling untrusted data.
What to assign to the administrator right now
- Compile a list of affected services. Include production instances, standby instances, containers, background tasks, and build tools. For each, record the Node.js version, startup method, and responsible person.
- Check configuration and data backups. Save startup parameters and prepare a recovery procedure. If possible, test the update in a staging environment; with multiple instances, update them sequentially while monitoring readiness.
- Install the corrected Node.js environment from a trusted source. Updating only the application's npm dependencies does not replace fixing the runtime's built-in decoder.
- Restart all affected processes and background handlers according to the established deployment procedure. A single-service update may require a brief maintenance window.
- Verify the result: check the version in new worker processes, auto-startup, APIs, account login, forms, and external system integration. Ensure old instances no longer accept traffic.
How to verify the version without false confidence
The initial check can be performed in the terminal using the command:
node --version
This displays the Node.js version from the current terminal environment. The systemd service, PM2 application, or container may use a different executable. Check each separately, under the appropriate user and accounting for startup configuration.
For diagnostics directly within the application, process.version and process.execPath are available: the runtime version and the executable file path. Their purpose is described in the Node.js documentation. Use secure administrative diagnostics; there is no need to publish such information on a public website page.
Special attention: Docker and PM2
Containers. Updating Node.js on the host does not change the copy inside the image. Update the base image or pinned digest you are using, rebuild the application, and deploy new containers while preserving persistent data. Docker recommends rebuilding images with updated dependencies. Re-running an old image leaves the old environment in place.
PM2. Check the application interpreter and auto-start configuration: after an update, they may still point to the previous Node.js path. The PM2 documentation explicitly states that after updating Node.js, you must update the startup script. Choose the restart order for each specific application, taking its operating mode into account.
If an immediate update is not possible
Temporary mitigations must specifically address decompression of untrusted Brotli data. Until the fix is installed, administrators should:
- Limit or temporarily disable the relevant incoming data handlers, if permissible for the service.
- Review external HTTP downloads and automatic response decompression by libraries; restrict requests to untrusted sources.
- Increase monitoring of decompression errors, process crashes, and unusual process activity.
The mechanism described by developers implies that disabling Brotli-compressed responses in Nginx or a CDN does not guarantee protection for the Node.js decoder. Similarly, a WAF placed in front of a site does not necessarily control responses that the application downloads from external sources. These measures do not replace fixing the runtime environment.
What to do if exploitation is suspected
Check for unexpected Node.js crashes, changes to files and startup entries, unfamiliar processes, and unusual network connections. Such events require investigation, but on their own do not prove exploitation of this CVE.
If signs of compromise are detected, isolate the affected service, preserve logs and evidence for investigation, and engage a security specialist. After containing the incident, rotate the affected secrets from a trusted environment. Applying the patch does not remove the consequences of an already successful breach.
Important note for PHP users
The error lies within Brotli and is not limited to Node.js. On October 26, the PHP team announced updated Windows builds of PHP 8.5.12-1, 8.4.27-1, 8.3.36-1, and 8.2.35-1 with the fixed Brotli 1.2.1. In vulnerable Windows builds of PHP, the Brotli decoder can be invoked via cURL when automatic HTTP response decompression is enabled; cURL does not enable this by default, but applications may enable it.
The -1 suffix indicates a rebuild of the Windows package with updated dependencies: the PHP runtime version itself remains unchanged. This is a separate check for Windows. For Linux and other products, refer to notifications from the respective package providers; updating Node.js does not automatically fix them.
What the project owner should obtain from the administrator
Ask the administrator to provide a list of verified services, versions after the update, confirmation that all instances have been restarted, and the results of core site functionality checks. If part of the infrastructure has not yet been updated, temporary measures, the responsible person, and the completion deadline must be specified.
If your project is hosted with General iT, submit the request via your personal account: specify the service and application requiring Node.js and Brotli checks. Do not include passwords, tokens, or private keys in the request.
Information verified on October 27, 2026. Basis: official notifications from Node.js, PHP, and Vercel, release records, and developer documentation.




Discussion 0
Share your experience and ask questions. Comments without links appear after editorial review.
No comments yet. Start the discussion.