Новости · Кибербезопасность файлов

Node2Shell: критическая уязвимость декодера Brotli CVE-2026-111497 затронула Node.js, Bun, .NET и архиваторы

CISA внесла уязвимость CVE-2026-111497 (получившую имя Node2Shell) в каталог Known Exploited Vulnerabilities 27 октября 2026 года и назначила федеральным агентствам США срок устранения — 10 ноября 2026, то есть сегодня. Брешь в декодере библиотеки сжатия Brotli с оценкой CVSS 9.2 Critical затронула не только серверный Node.js, но и десктопный софт для работы с файлами, включая архиватор Total Commander.

10 ноября 2026 Редакция LoadFile Чтение 6 мин
Иллюстрация повреждённого сжатого файла и разбитого щита — уязвимость Brotli Node2Shell

Коротко: в декодере Brotli — библиотеки сжатия, которую используют браузеры, серверы и десктопные архиваторы, — нашли уязвимость выхода за границы буфера (CVE-2026-111497, «Node2Shell»). Она затрагивает версии Brotli с 1.0.3 по 1.2.0 и исправлена в 1.0.10, 1.1.1 и 1.2.1. Патчи уже выпустили Node.js, Bun, Microsoft (.NET), Python-пакеты brotli/brotlicffi и десктопные программы вроде Total Commander. CISA требует от федеральных ведомств США закрыть уязвимость к 10 ноября 2026 — сегодня.

Что случилось: от тихого фикса в феврале до CISA KEV в октябре

Исходную ошибку в коде библиотеки Brotli разработчики Google исправили ещё 27 февраля 2026 года, но тогда это выглядело как рядовой багфикс без заметки о безопасности. Её реальные последствия для безопасности обнаружили только во время red-team-исследований специалисты OpenAI Codex Security: оказалось, что поток, который объявляет один тип блока, а затем переключается на другой без корректного завершения, не отклоняется декодером. В результате данные продолжают дописываться во внутренний 8-байтовый буфер за его границами — классическое out-of-bounds write (CWE-787).

Эксплуатация такой ошибки может привести к падению процесса, утечке содержимого памяти или — в худшем случае — к удалённому выполнению произвольного кода через специально подготовленный сжатый поток. Публичный proof-of-concept 22 октября 2026 подтвердил возможность RCE на официальном образе Node.js 24.22.0. Google оценил критичность по CVSS 4.0 в 9.2 балла (Critical), Microsoft — по CVSS 3.1 в 8.1.

i
Почему «Node2Shell»

Неофициальное имя уязвимости отсылает к тому, что самый заметный вектор атаки — через серверные приложения на Node.js, которые автоматически распаковывают входящий трафик со сжатием Brotli (заголовок Content-Encoding: br), не проверяя его происхождение.

Что затронуто: от серверного Node.js до десктопных архиваторов

Brotli — не узкоспециализированный инструмент, а библиотека сжатия общего назначения, встроенная в десятки экосистем: браузеры используют её для `Content-Encoding: br`, а многие файловые утилиты — для распаковки `.br`-архивов и внутренних контейнеров. Поэтому патчи пришлось выпускать не одному разработчику, а целому ряду вендоров практически одновременно.

ПродуктИсправленная версияКогда вышел патч
Node.js22.23.4 / 24.22.1 / 26.12.121 октября 2026
Bun1.4.4октябрь 2026
Microsoft .NET8.0.33 / 9.0.22 / 10.0.14октябрь 2026
Python-пакеты brotli / brotlicffi1.2.1 / 1.2.1.0октябрь 2026
Envoy, Istioобновлены до патченного libbrotliоктябрь 2026
Linux-дистрибутивы (пакет libbrotli)зависит от дистрибутиваоктябрь–ноябрь 2026
Total Commander11.58.1 (обновлена BROTLI-dll в tcmdlzma)29 октября 2026

Для читателей Loadfile важнее всего последняя строка: уязвимость добралась и до привычных настольных инструментов для работы с файлами. Файловый менеджер и архиватор Total Commander умеет распаковывать `.br`-файлы через встроенный плагин tcmdlzma, и разработчик выпустил версию 11.58.1 именно как «важное обновление безопасности», обновив декодер. Иначе говоря, Brotli сидит не только в серверах, но и в обычных программах для распаковки файлов на домашнем компьютере.

Почему 10 ноября — не формальность

CISA (Агентство кибербезопасности и защиты инфраструктуры США) добавило CVE-2026-111497 в каталог Known Exploited Vulnerabilities (KEV) 27 октября 2026 года — это означает, что уязвимость признана активно эксплуатируемой, а не только теоретической. По обязывающей директиве CISA федеральные гражданские ведомства США должны устранить такие уязвимости к назначенному сроку; для этой записи срок — 10 ноября 2026. Формально требование касается только госструктур США, но для любой компании включение в KEV значит одно: эксплойт уже рабочий, тянуть с обновлением опасно.

Что делать: как проверить и закрыть уязвимость

Для серверных окружений на Node.js или Bun достаточно свежей версии интерпретатора — патч идёт внутри рантайма, отдельно обновлять саму библиотеку Brotli не нужно.

  1. Проверьте версию: node -v для Node.js или bun --version для Bun — она должна быть не ниже патченной из таблицы выше.
  2. Для Python-зависимостей выполните pip show brotli brotlicffi и обновите пакеты, если версия ниже 1.2.1.
  3. Для десктопных программ, которые распаковывают `.br`-файлы (например, Total Commander), обновитесь до последней версии с официального сайта разработчика.
  4. Если обновить рантайм быстро нельзя, временная мера — отключить обработку Brotli-сжатия на уровне приложения или reverse-прокси и отбрасывать заголовок Content-Encoding: br из недоверенного входящего трафика.

Если вы в целом выбираете, какой архиватор использовать для повседневной работы с файлами, свежий разбор плюсов и минусов популярных форматов есть в статье ZIP, RAR или 7Z — какой формат архива выбрать. А полный список расширений, которые стоит открывать с осторожностью, собран в карте опасных расширений.

Источники

Читайте также