Критическая уязвимость Broccoli2Shell в Brotli вызвала волну экстренных патчей

1 час назад 3

Специалисты Microsoft и PHP выпустили внеплановые обновления для исправления критической уязвимости CVE-2026-111497, недавно обнаруженной в декодере Brotli. Эту уязвимость уже успели окрестить Node2Shell, HTTPS2Shell, Broccoli2Shell и даже Brotlipocalypse, и ранее патчи уже вышли для Node.js, Bun, Python-пакетов, Envoy и Istio. Однако список ПО, затронутого этой проблемой, продолжает расти.

Как мы рассказывали ранее, CVE-2026-111497 связана с out-of-bounds записью при обработке специально подготовленных Brotli-данных. Баг затрагивает разработанный специалистами компании Google алгоритм сжатия данных Brotli, а именно версии библиотеки с 1.0.3 по 1.2.0. Эксплуатация проблемы может привести к аварийному завершению работы процесса, утечке содержимого памяти, а также к удаленному выполнению произвольного кода.

Специалисты Google оценили эту проблему на 9,2 балла по шкале CVSS 4.0 и выпустили патчи, вошедшие в состав версий 1.2.1, 1.1.1 и 1.0.10.

Так как Brotli используется во множестве проектов, свежей уязвимости уже успели присвоить такие громкие названия, как Node2Shell, HTTPS2Shell, Broccoli2Shell и даже Brotlipocalypse.

Ранее сообщалось, что проблему экстренно исправили в Node.js, рантайме Bun, Python-пакетах Brotli и brotlicffi, прокси Envoy и платформе Istio.

Теперь внеплановые патчи для CVE-2026-111497 также подготовили в Microsoft. Исправления вошли в .NET версий 8.0.33, 9.0.22, 10.0.14 и .NET 11 Release Candidate 3. Кроме того, обновления получили Visual Studio 2019, 2022 и 2026, а также PowerShell 7.4, 7.5 и 7.6.

В Microsoft оценили CVE-2026-111497 на 8,1 балла по шкале CVSS 3.1 и считают эксплуатацию уязвимости «весьма вероятной». При этом Brotli-декомпрессия не активна по умолчанию в .NET и ASP.NET Core, и опасность возникает лишь в том случае, если приложение явно включает распаковку запросов или ответов либо напрямую использует API Brotli.

Также обновления пришлось срочно выпустить и разработчикам PHP. Они сообщают, что пересобрали официальные Windows-пакеты PHP 8.2–8.5 с исправленным Brotli 1.2.1, и новые сборки получили номера 8.5.12-1, 8.4.27-1, 8.3.36-1 и 8.2.35-1.

В PHP уязвимость можно использовать через расширение cURL, когда оно автоматически распаковывает Brotli-ответы. Хотя в cURL эта возможность отключена по умолчанию, такое поведение могут активировать приложения и HTTP-клиенты. К примеру, Guzzle при работе через cURL включает автоматическое декодирование ответов по умолчанию.

При этом проблема не ограничивается вышеперечисленными проектами. Так, публичный трекер Broccoli2Shell указывает, уязвимую версию Brotli также используют DuckDB, Apache Arrow, 7-Zip-zstd, p7zip, EDK II и другое ПО. При этом обновления системной библиотеки будет недостаточно, если проект поставляется с собственной копией Brotli: разработчикам нужно обновить зависимость и выпустить исправленную версию приложения.

Кроме того, специалисты компании JFrog продемонстрировали, что уязвимость не ограничивается HTTP-клиентами и серверами: им удалось построить цепочку эксплуатации CVE-2026-111497 через FFmpeg и специально подготовленное изображение JPEG XL. В этом случае FFmpeg обращается к библиотеке libjxl, которая использует Brotli для распаковки метаданных из блоков brob, и вредоносные данные в итоге попадают в уязвимый декодер.

В свою очередь, эксперты из компании Wiz предупреждают, что новая проблема представляет отдельную опасность для облачной инфраструктуры. По словам исследовательницы Мерав Бар (Merav Bar), компоненты, уязвимые перед CVE-2026-111497, встречаются в 91% облачных окружений, а в 82% таких сред также присутствуют публично доступные инстансы Node.js.

Специалисты объясняют, что это связано с широким использованием Brotli в контейнерных приложениях, Kubernetes-кластерах, API-шлюзах, реверс-прокси и облачных веб-сервисах.

В Wiz предупреждают, что успешная эксплуатация бага может привести к компрометации приложений и контейнеров, утечке данных, сбоям в работе сервисов и выполнению произвольного кода.

Подтвержденных случаев эксплуатации CVE-2026-111497 пока не зафиксировано. Однако ранее специалисты Imperva продемонстрировали PoC-эксплоит, который приводит к удаленному выполнению произвольного кода в Node.js 24.22.0 для Linux arm64, и в сети уже появились другие эксплоиты для этого бага.

Источник