Microsoft устранила критическую уязвимость Brotli в .NET и Visual Studio
- Microsoft выпустила внеплановые обновления для .NET, Visual Studio и PowerShell; затронуты .NET 8, 9, 10 и 11 RC 3.
- Уязвимы версии Brotli 1.0.3–1.2.0; исправления есть в версиях 1.0.10, 1.1.1 и 1.2.1.
- По данным Wiz, уязвимые ресурсы есть в 91% облачных сред; сообщения об атаках пока не поступали.
Почему это важно: Переполнение буфера может позволить злоумышленнику без аутентификации читать или повреждать память процесса, что способно привести к утечке данных, отказу в обслуживании или повышению привилегий.

В воскресенье Microsoft выпустила внеплановые обновления для .NET, Visual Studio и PowerShell. Они устраняют CVE-2026–111497 — переполнение буфера в Brotli, широко используемой библиотеке сжатия от Google, о котором сообщила команда Codex Security компании OpenAI. Исправления выпускают также Node.js, пакеты Python, прокси-серверы и другие инструменты, включающие в себя эту библиотеку.
В записи в блоге .NET Microsoft сообщила, что переполнение буфера может позволить злоумышленнику без аутентификации читать или повреждать память процесса. Это способно привести к раскрытию информации, отказу в обслуживании или повышению привилегий. Обновление охватывает .NET 8, 9 и 10, а также .NET 11 Release Candidate 3. Сборки Visual Studio и PowerShell перечислены в руководстве по обновлениям безопасности компании.
Microsoft оценивает уязвимость как критическую для .NET и Visual Studio и как важную для PowerShell. По данным компании, сведения об уязвимости публично раскрыты, случаев эксплуатации не зафиксировано, а вероятность эксплуатации оценивается как «более высокая». В .NET распаковка Brotli по умолчанию не включена, а .NET Framework уязвимость не затрагивает.
Тот же выпуск завершает два исправления из октябрьского Patch Tuesday от Microsoft, которые тогда устранили проблемы не полностью.
Одна ошибка — три названия
Уязвимость CVE-2026–111497 известна под названиями Node2Shell, HTTP2Shell и Broccoli2Shell. Сначала её обнаружили в Node.js, а затем исследователи проследили её до декодера Brotli на C. Многие программы копируют этот декодер в собственный код. Уязвимы версии Brotli с 1.0.3 по 1.2.0. Исправление содержится в версиях 1.0.10, 1.1.1 и 1.2.1. Google, присвоившая идентификатор CVE, оценивает уязвимость в 9,2 балла из 10 в записи CVE.
Как сказано в бюллетене Node.js, декодер воспринимал некорректное переключение блока не как ошибку формата, а как необходимость получить больше входных данных.
Потоковый декодер «продолжал дописывать входные байты во внутренний восьмибайтовый буфер», — написали в Node.js.
Для атаки необходимо, чтобы приложение распаковало вредоносные данные. Это может быть сжатый ответ от сервера, к которому обращается приложение. Это также может быть сжатый запрос, отправленный кем-то непосредственно на сервер.
Исправлено в феврале, выпущено в октябре
Node.js отметила заслуги Кхая Трана и Сильви Майер из команды Codex Security компании OpenAI. OpenAI сообщила в публикации в X, что обнаружила проблему в ходе работ по редтимингу.
«Первопричина этой проблемы на самом деле была исправлена в исходном коде Brotli ещё в феврале, но тогда не было известно, что она порождает уязвимость безопасности, а более свежего выпуска Brotli не выходило», — заявили в OpenAI.
Node.js и Google выпустили исправленные версии 21 октября. На той же неделе стало известно о двух критических уязвимостях PHP, а позднее PHP предупредила о третьей.
Насколько велик масштаб угрозы?
Компания Wiz, специализирующаяся на облачной безопасности, сообщает в записи в блоге, что в 91% облачных сред есть ресурсы, уязвимые для этой ошибки. По её данным, в 82% сред есть публично доступные экземпляры Node.js.
Imperva удалось запустить собственный код на официальном образе Node.js 24.22.0 для Linux на ARM64. Атака срабатывала не каждый раз, и Imperva её не опубликовала. По данным Sysdig, доказательство концепции на GitHub работает только против намеренно ослабленной сборки. Исследователи из Brandefense утверждают, что с её помощью можно лишь вызвать сбой программ. Сообщений об атаках с использованием уязвимости пока не поступало.
Исправления уже вышли для Bun, Envoy, Istio, а также Python-пакетов Brotli и brotlicffi. JFrog также обнаружила уязвимость в FFmpeg, ClickHouse и Apache Arrow, как сообщила Свати Кханделвал в The Hacker News. В некоторых из них атака начинается не с веб-запроса, а с файла.
Публичный трекер по-прежнему указывает DuckDB, Apache Arrow, 7-Zip-zstd, p7zip и EDK II как неисправленные. В нём предупреждается, что обновление системной библиотеки Brotli не исправляет приложения, которые включают собственную копию, например Node.js. После обновления командам необходимо перезапустить службы и пересобрать образы контейнеров, поскольку запущенные процессы продолжают использовать старый код.
