Уязвимость Node2Shell в декодере Brotli затрагивает продукты Siemens

Siemens

В декодере Brotli, который распаковывает сжатые данные, нашли запись за границами буфера. Ошибку называют Node2Shell. Специально собранный сжатый поток переполняет буфер и портит соседнюю память декодера. Дальше возможны утечка содержимого памяти, отказ в обслуживании и, при удачном стечении обстоятельств, выполнение произвольного кода.

Декодер стоит на входе недоверенных данных

Brotli сжимает веб-трафик, и декодер разбирает то, что пришло из сети. Права пользователя проверяются позже. Поэтому достаточно отправить вредоносный поток. Учётные данные не нужны.

Библиотека входит в поставку Node.js, а не подключается отдельно. Из-за этого она попадает в сборку даже туда, где о ней не думали. Первый вопрос при проверке звучит так: несёт ли продукт Node.js внутри.

Ошибка живёт в самом декодере и затрагивает его внутреннее состояние. Портится не буфер приложения, а память рядом с ним. По классификации MITRE это CWE-787, запись за границами буфера. Уязвимы все платформы, ограничений по операционной системе источник не называет.

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

Условия атаки

Атака идёт по сети, сложность низкая, привилегии и участие пользователя не требуются. Так условия описывает вектор CVSS 3.1. Оценка по этой версии - 9,8 из 10.

В CVSS 4.0 оценка ниже, 9,2. Там отмечено, что для успеха нужны дополнительные требования к атаке, то есть определённые условия в целевой среде. Какие именно, источник не раскрывает. Кроме записи за границами буфера в записи CVE указана вторая слабость, CWE-252: непроверенное возвращаемое значение.

Какие версии закрывают ошибку

Проект Node.js выпустил обновления 21 октября 2026 года. Библиотеку Brotli исправили в версиях 1.0.10, 1.1.1 и 1.2.1. Если в сборке или в отдельном двоичном файле оказалась любая версия с 1.0.3 по 1.2.0, её меняют на одну из этих трёх. Обходных мер запись CVE не приводит. То есть заменить обновление нечем.

После установки исправления некорректный поток не доходит до записи в память. Именно это и стоит проверить на тестовом стенде: вредоносный архив перестаёт ломать декодер.

Эксплуатация уже не гипотеза. CISA добавила CVE-2026-111497 в каталог KEV, перечень уязвимостей, которые используют в реальных атаках. В оценке SSVC ведомство ставит статус эксплуатации active и максимальный технический эффект. Автоматизацию при этом помечают как невозможную. По версии CISA, готовый эксплойт, то есть код, использующий уязвимость, подобрать автоматически не выйдет. Атакующему нужна ручная работа. Детали эксплойта источники не раскрывают.

Запись CVE опубликовали 22 октября 2026 года и обновили 27 октября. Идентификатор зарезервировали 16 октября.

Позиция Siemens

Siemens выпустил уведомление SSA-045512. Первая редакция вышла 30 октября 2026 года, версия V1.1 - 4 ноября. В V1.1 в список затронутых продуктов добавили семейство Desigo CC. Других затронутых продуктов в доступной части уведомления нет.

Компания сообщает, что выпустила новые версии для затронутых продуктов, и советует обновляться до последних. Номера версий в доступной части уведомления не приведены. Часть продуктов Siemens перечислена как незатронутая: зарядное оборудование Heliox, SICHARGE, Sifinity, VersiCharge и VersiCloud. Причина одна - Node.js в них не используется.

Порядок действий простой. Сначала смотрят, есть ли Brotli уязвимых версий в сборке. Затем ставят исправленную версию библиотеки. Для Desigo CC ориентируются на уведомление Siemens и обновляют продукт до последней доступной версии.

Ссылки

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