Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-111497 — Консультативный набор инструментов и proof-of-concept для CVE-2026-111497 (Node2Shell) — переполнения кучи Brotli в Node.js, включающий скрипты запуска, проверку версии и рекомендации по устранению. | Kitploit
Инструменты/GitHubGitHub/0xblackash/cve-2026-111497
Оборонительные ИнструментыСканеры уязвимостейГенерация полезной нагрузкиАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеИнструмент Удаленного Доступа
GitHub0xblackash/cve-2026-111497

CVE-2026-111497

151 день назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →

Консультативный набор инструментов и proof-of-concept для CVE-2026-111497 (Node2Shell) — переполнения кучи Brotli в Node.js, включающий скрипты запуска, проверку версии и рекомендации по устранению.

Репозиторий
Поделиться

CVE-2026-111497 — Node2Shell

Gemini_Generated_Image_i7ii2oi7ii2oi7ii

CVE Badge CVSS Badge Component Badge CWE Badge License

Подробное уведомление о безопасности, технический анализ и руководство по устранению CVE-2026-111497

---

📋 Содержание

  • Краткое резюме
  • Технический анализ
    • Анализ первопричины
    • Векторы атак
    • Оценка воздействия
  • Уязвимые и исправленные версии
  • Обнаружение и аудит
  • Устранение и установка исправлений
    • Обновление нативного рантайма
    • Исправление слоя Docker / контейнера
  • Стратегии смягчения
  • Ссылки и ресурсы
  • Отказ от ответственности

📌 Краткое резюме

Раскрытая в октябре 2026 года, Node2Shell (CVE-2026-111497) — это критическая уязвимость безопасности, затрагивающая нативный компонент распаковки Brotli, встроенный непосредственно в бинарный файл рантайма Node.js.

Уязвимость позволяет удалённым атакующим выполнить произвольный код или вызвать сбой приложения, отправляя специально сформированные некорректные потоки байтов, сжатые Brotli, в любое приложение Node.js, обрабатывающее сжатые входные данные (например, парсеры тела HTTP-запросов, нативные вызовы fetch() или потоки WebSocket).

⚠️ КРИТИЧЕСКОЕ ЗАМЕЧАНИЕ: Поскольку уязвимый код находится в deps/brotli, скомпилированном в сам исполняемый файл Node.js, обновление пользовательских зависимостей npm не устранит эту уязвимость. Необходимо обновить бинарный рантайм Node.js.


⚙️ Технический анализ

Анализ первопричины

  • Тип уязвимости: Запись за границы буфера (CWE-787), возникающая из-за непроверенного возвращаемого значения (CWE-252).
  • Уязвимый компонент: Модуль декодера Google Brotli из вышестоящего проекта, интегрированный в Node.js (deps/brotli).
  • Механизм: При распаковке некорректного потока декодер не выполняет должную проверку граничных условий при переходах состояний потока. Это приводит к повреждению кучи за пределами предварительно выделенного пространства памяти.

Векторы атак

  1. Входящие HTTP-запросы: Фреймворки и промежуточное ПО (например, Express, Fastify), настроенные на автоматическую распаковку тела запроса (Content-Encoding: br).
  2. Исходящий / входящий Fetch API: Нативный fetch(), обрабатывающий автоматические ответы от недоверенных сторонних конечных точек, отдающих сжатое содержимое.
  3. Внутренние конвейеры потоков: Пользовательские потоки Node.js, использующие zlib.createBrotliDecompress().

Оценка воздействия

  • Отказ в обслуживании (DoS): Надёжное возникновение ошибок сегментации (SIGSEGV), приводящих к немедленному падению рабочих процессов.
  • Раскрытие информации: Неконтролируемые чтения из кучи, раскрывающие конфиденциальные токены или переменные окружения, кэшированные в памяти процесса.
  • Удалённое выполнение кода (RCE): Продемонстрированное повреждение памяти кучи, приводящее к полному контролю над потоком выполнения процесса в стандартных неизменённых контейнерных развёртываниях.

📊 Уязвимые и исправленные версии

Линейка релизов Node.jsСтатусИсправленная версияТребуемое действие
Node.js 26.x⚠️ Уязвима>= 26.12.1Немедленно обновите
Node.js 24.x⚠️ Уязвима>= 24.22.1Немедленно обновите
Node.js 22.x (LTS)⚠️ Уязвима>= 22.23.4Немедленно обновите
Node.js 20.x и старше❌ EOLНетНемедленно перейдите на поддерживаемую LTS

🚨 Внимание, EOL: Node.js 20 достиг конца жизненного цикла (EOL) в апреле 2026 года. Официальные бэкпорты безопасности для версий с истёкшим сроком поддержки недоступны.


Скрипт безопасной проверки

Вот что именно вы должны увидеть, когда проверяющий скрипт работает правильно.

1. Исправленный / пропатченный Node.js (хороший результат)

$ node node2shell-check.js
=== Node2Shell (CVE-2026-111497) Safe Checker ===
Local version + constant probe only. No network, no payloads.

Current Node.js version : v24.22.1
Brotli constant present : yes (-17) → patched decoder

───────────────────────────────────────────────────────
Verdict: PATCHED
You are running a fixed release of the 24.x line.

Additional notes:
• The constant check is the most reliable signal when Node.js ships
  its own (statically linked) Brotli. On some Linux distros Node may
  use the system libbrotli – then you must also check the system package.
• Updating npm packages alone does NOT fix this issue.
• After upgrading, restart every Node.js process / container.
• Official fixed versions: 22.23.4 · 24.22.1 · 26.12.1

2. Уязвимый Node.js (плохой результат)

$ node node2shell-check.js
=== Node2Shell (CVE-2026-111497) Safe Checker ===
Local version + constant probe only. No network, no payloads.

Current Node.js version : v24.22.0
Brotli constant present : no / missing → likely vulnerable decoder

───────────────────────────────────────────────────────
Verdict: VULNERABLE
Upgrade to Node.js 24.22.1 or later in the 24.x line.

Additional notes:
• The constant check is the most reliable signal when Node.js ships
  its own (statically linked) Brotli. On some Linux distros Node may
  use the system libbrotli – then you must also check the system package.
• Updating npm packages alone does NOT fix this issue.
• After upgrading, restart every Node.js process / container.
• Official fixed versions: 22.23.4 · 24.22.1 · 26.12.1

3. Версия с истёкшим сроком поддержки (также уязвима)

Current Node.js version : v20.18.0
Brotli constant present : no / missing → likely vulnerable decoder

Verdict: VULNERABLE (EOL / UNSUPPORTED)
This release line is end-of-life or never received the security fix.
Migrate to a supported LTS line (22.x, 24.x or 26.x) and use a patched version.

Быстрый способ самостоятельно убедиться в константе

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

node -p "require('zlib').constants.BROTLI_DECODER_ERROR_FORMAT_BLOCK_SWITCH ?? 'missing'"
  • Возвращает -17 → исправлено
  • Возвращает missing → уязвимо

Это та же проверка, которую использует скрипт.


Настройка лаборатории

# Python dependencies
pip install requests brotli

# Node server (webhook injection + eval paths)
npm install
node server-stock.js       # port 3000

Использование

# Real CVE trigger — hang a Node.js HTTP server (Content-Encoding: br)
python3 Node2Shell.py -u http://TARGET:3000 --hang --path /api/data --timeout 10
Скачать инструмент