Microsoft выпустила экстренные обновления безопасности для .NET, устраняющие критическую уязвимость, известную как Broccoli2Shell, также известную как Node2Shell и HTTP2Shell.
Эта критическая уязвимость, обозначенная как CVE-2026-111497, связана с выходом за границы буфера при записи в декодере Brotli, который расшифровывает данные, сжатые с помощью широко используемого алгоритма сжатия без потерь Brotli от Google.
HTTP2Shell затрагивает HTTP-клиенты и серверы, а также другие приложения и инструменты, использующие уязвимые реализации Brotli.
Успешная эксплуатация уязвимости позволяет непривилегированным злоумышленникам использовать вредоносный поток, сжатый с помощью Brotli, чтобы вызвать сбои или утечки памяти, а в некоторых случаях получить возможность удаленного выполнения кода на устройствах с уязвимыми двоичными файлами или библиотеками Brotli.
Согласно рекомендациям Microsoft, опубликованным в воскресенье, злоумышленники также могут использовать эту уязвимость для удаленного повышения привилегий в системах с незакрытыми уязвимостями.NET, в которых используются конфигурации, отличные от стандартных.
«Это может повлиять на работу приложений, которые обрабатывают данные, сжатые с помощью Brotli, через декомпрессию запросов ASP.NET Core, автоматическую декомпрессию ответов HttpClient или API-интерфейсы Brotli в System.IO.Compression,» — сообщила Microsoft.
«Декомпрессия Brotli по умолчанию не включена в стандартных установках .NET или ASP.NET Core. Приложения должны вручную включать декомпрессию запросов ASP.NET Core или декомпрессию ответов HttpClient либо вручную вызывать API-интерфейсы декомпрессии Brotli, предоставляемые .NET.
Чтобы устранить этот недостаток, Microsoft выпустила внеочередные (OOB) обновления безопасности для .NET 8, .NET 9 и .NET 10, а также для .NET 11 Release Candidate 3, и рекомендовала «обновить их как можно скорее».
| .NET-версия | Обновление | Скачать |
|---|---|---|
| .NET 8 | 8.0.33 | .NET 8 SDK и среда выполнения |
| .NET 9 | 9.0.22 | .NET 9 SDK и среда выполнения |
| .NET 10 | 10.0.14 | .NET 10 SDK и среда выполнения |
| .NET 11 | Релиз-кандидат 3 | .NET 11 SDK и среда выполнения |
Несмотря на то, что на GitHub уже опубликованы эксплойты для Broccoli2Shell, подтверждающие концепцию (proof-of-concept, PoC), сообщений о злонамеренном использовании этой уязвимости в реальных условиях не поступало.
На специальном онлайн-портале, отслеживающем уязвимость, предупреждают, что обновление системной библиотеки Brotli не устраняет риск в приложениях, которые используют собственную копию библиотеки.
Тем, кто не может сразу установить обновления, следует блокировать входящие запросы, сжатые с помощью Brotli, с помощью прокси-сервера или брандмауэра или отключить декодирование Brotli до тех пор, пока не будет установлен патч.