jsonscraper

Уязвимость Brotli затронула .NET и Node.js: как проверить и обновить приложения

CVE-2026-111497 связана с обработкой специально сформированных Brotli-данных. Проверьте не только версию рантайма, но и фактическое использование декодера.

Редакционная политика Сообщить об ошибке

Приложение может принимать обычный HTTPS-трафик и при этом обрабатывать опасный ввод, если оно распаковывает предоставленные пользователем данные Brotli. 25 октября 2026 года Microsoft выпустила внеплановые обновления .NET для устранения переполнения буфера в декодере Brotli; уязвимость обозначена как CVE-2026-111497. Node.js включил исправление той же уязвимости в отдельный выпуск безопасности от 21 октября. Для разработчика первый шаг — найти путь от внешних данных до декодера, затем обновить рантайм и пересобрать или перезапустить приложение.

Article: Уязвимость Brotli затронула .NET и Node.js: как проверить и обновить приложения
Summary: 25 октября Microsoft выпустила внеплановые исправления .NET для уязвимости декодера Brotli CVE-2026-111497. Node.js включил исправление этой же уязвимости в релизы безопасности от 21 октября. Для оценки риска выясните, какие приложения декодируют недоверенные данные и какая версия библиотеки работает в развернутой среде.
Image role: cover — the central idea
Section: 
Visual subject: Brotli compresse
© jsonscraper · AI-generated illustration

По описанию Microsoft, уязвимость .NET может позволить неаутентифицированному атакующему читать или повреждать память процесса, что способно привести к раскрытию данных, отказу в обслуживании или повышению привилегий. Исправления опубликованы для .NET 8, 9 и 10, а также .NET 11 Release Candidate 3. Для .NET 8 указаны runtime 8.0.33 и SDK 8.0.133 или 8.0.427. .NET Framework этой уязвимостью не затронут.

Где возникает экспозиция

Риск возникает, когда приложение передаёт недоверенный Brotli-поток уязвимому декодеру. В .NET это может происходить при использовании ASP.NET Core request decompression, автоматическом разжатии ответов через HttpClient или прямом вызове API из System.IO.Compression, например BrotliStream и BrotliDecoder. Рекомендация .NET перечисляет эти пути и указывает, что разжатие входящих запросов и автоматическое разжатие ответов по умолчанию выключены.

Инвентаризация пакетов — только начало проверки. Найдите конфигурации middleware и HTTP-клиентов, прямые вызовы декодера и сторонние компоненты, принимающие сжатые данные. Установите, поступают ли такие данные от клиентов, веб-хуков, прокси или внешних API, и какие ограничения размера и времени обработки стоят до распаковки. Это поможет определить, где уязвимый код получает контролируемые извне данные.

Обновление .NET

Установите обновление для используемой ветки: .NET 8 — 8.0.33, .NET 9 — 9.0.22, .NET 10 — 10.0.14; для .NET 11 — Release Candidate 3. Для framework-dependent приложений установите обновлённый runtime и перезапустите приложение. Self-contained-приложения нужно пересобрать и опубликовать заново: обновление runtime на хосте не заменяет копию, включённую в приложение. Контейнеры пересоберите и разверните на обновлённых образах .NET.

Для NativeAOT также используйте обновлённые SDK и runtime-пакеты при повторной публикации. Если исправление пока нельзя развернуть, временно отключите Brotli на выявленных входных путях, принимающих недоверенные данные. Проверьте обычные запросы и интеграции: отключение сжатия может изменить обработку клиентов, отправляющих сжатые тела.

Проверьте Node.js и системные зависимости

Проект Node.js сообщил об уязвимости 21 октября: затронут Brotli-декодер, встроенный в Node.js 22.x, 24.x и 26.x. Выпуск безопасности Node.js указывает исправленные версии 22.23.4, 24.22.1 и 26.12.1 соответственно. Обновите используемую поддерживаемую ветку и перезапустите сервис. По описанию проекта, проблема возникает, когда приложение распаковывает предоставленные атакующим данные с помощью node:zlib; повреждение памяти может привести к аварийному завершению, раскрытию памяти или удалённому выполнению кода.

Проверьте также зависимости, поставляемые отдельно от системного Node.js или .NET. Сверьте версии Brotli в контейнерах и артефактах сборки, затем повторите проверку после развертывания. В CI закрепите обновлённый базовый образ и включите контроль версий уязвимых библиотек в обычный процесс сборки.

Короткий порядок действий

  1. Составьте список приложений, SDK, runtime, контейнеров и NativeAOT-сборок, использующих Brotli.
  2. Найдите места, где внешние данные проходят через автоматическое или прямое декодирование.
  3. Обновите .NET, Node.js и отдельно поставляемые библиотеки до исправленных версий; пересоберите автономные приложения и контейнеры.
  4. Перезапустите процессы и проверьте версии в работающем окружении, а не только в файлах проекта.
  5. Пока исправление не развернуто, ограничьте обработку недоверенного Brotli-ввода на выявленных уязвимых путях.

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

Персоны

Для этой статьи персоны пока не указаны.

Читайте дальшеGitHub CLI добавила истекающие OAuth-токены: как включить и проверить интеграции
Читать следующую статью

Превратите прочитанное в рабочую интеграцию

Изучайте API социальных данных jsonscraper, тестируйте запросы и создавайте новые процессы.

Смотреть API