SOC Prime Bias: High

26 Oct 2026 16:41 UTC

CVE-2026-111497: Критична вада Node2Shell в декодері Brotli для Node.js

Author Photo
SOC Prime Team linkedin icon Стежити
CVE-2026-111497: Критична вада Node2Shell в декодері Brotli для Node.js
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

Node2Shell – це критична уразливість (CVE-2026-111497), яка впливає на декодер Brotli, вбудований у Node.js, і викликана записом за межами доступної пам’яті. Атакуючі можуть експлуатувати цю помилку, надаючи невірно сформовані компресовані потоки сервісам, які обробляють дані Brotli, що може призвести до відмови у обслуговуванні, розголошення пам’яті чи виконання віддаленого коду. Уразливість становить особливу загрозу для сервісів, які використовують Express 5 або проміжне програмне забезпечення, що автоматично виконує декомпресію Brotli.

Розслідування

Команда з дослідження загроз Sysdig проаналізувала уразливість і повідомила, що публічний PoC з’явився протягом кількох годин після випуску патча. Дослідження, проведені Imperva і Vercel, показали, що виконання коду можливе на певних архітектурах, включаючи Linux arm64. Розслідування показало, що можливість експлуатації залежить від того, чи обробляє додаток або його бібліотеки, такі як body-parser, потоки Brotli, контрольовані атакувальником.

Пом’якшення

Основним способом пом’якшення є оновлення Node.js до версій 22.23.4, 24.22.1 або 26.12.1 та оновлення Bun до версії 1.4.4 або пізнішої. Організації також мають відключити декомпресію запитів, де це можливо, включаючи встановлення inflate: false у body-parser. Розгортання правил WAF для відхилення неперевірених Content-Encoding: br запитів і запуск сервісів під необмеженими обліковими записами забезпечує додаткові рівні захисту.

Відповідь

Якщо виявлено можливий ланцюг експлуатації, такий як збій процесу Node.js, що супроводжується несподіваним виконанням програми, команди безпеки повинні негайно ізолювати постраждале робоче навантаження. Слідкуйте за постексплуатаційною активністю, включаючи інтерактивні оболонки, неавторизовані завантаження зловмисного програмного забезпечення, криптомайнінг або крадіжку секретів та хмарних токенів. Патчування всіх доступних вразливих сервісів повинно залишатися найвищим пріоритетом.

Потік атаки

Ми ще оновлюємо цю частину.

Виявлення

Підозрілі дочірні процеси NodeJS [Windows] (через cmdline)

Команда SOC Prime
25 жовтня 2026

Підозріла оболонка через веб-сервер [Linux] (через process_creation)

Команда SOC Prime
25 жовтня 2026

Підозрілі дочірні процеси NodeJS [Linux] (через cmdline)

Команда SOC Prime
25 жовтня 2026

Виявлення збою процесу Node.js, після якого слідує виконання програми в наявному місці – експлуатація Node2Shell [Linux Process Creation]

Правила SOC Prime AI
25 жовтня 2026

Виконання імітації

  • Опис атаки та команди: Зловмисник націлюється на веб-додаток, що працює під керуванням Node.js. Вони відправляють шкідливий завантажений Brotli-навантажувач, що викликає помилку в корупції пам’яті, викликаючи node процес на збій. Відразу після збою атакуючий використовує захоплений потік виконання, щоб породити /bin/bash оболонку, щоб установити стійкість і почати місцеву розвідку. Ця послідовність node події, що супроводжує /bin/bash виконання розроблена, щоб відповідати selection_crash and selection_suspicious_exec логіці правила виявлення.

  • Регресійний тестовий скрипт:

    #!/bin/bash
    # Імітація експлуатації у стилі Node2Shell
    
    echo "[+] Початок імітації Node2Shell..."
    
    # 1. Імітація процесу Node.js, який 'зависає' або завершується несподівано
    # У реальній ситуації це збій. Тут ми імітуємо телеметрію
    # вузла процесу, що викликається/обробляється.
    node -e "process.exit(1)"
    echo "[+] Процес Node.js 'зависає' (код завершення 1)."
    
    # 2. Імітація негайного запуску підозрілої оболонки
    # Це імітує корисне навантаження, що викликає оболонку після збою.
    /bin/bash -c "echo 'Експлуатація успішна: оболонка породжена'"
    
    echo "[+] Імітація завершена. Перевірте SIEM для виявлення."
  • Команди очистки:

    # У цьому симуляції не створювалося жодних постійних файлів.
    # Просто переконайтесь, що немає несанкціонованих процесів bash.
    pkill -f "Експлуатація успішна"