Разработчики и ведущие технологические компании выпустили экстренные исправления безопасности для устранения крайне критической уязвимости, известной как HTTP2Shell (отслеживаемой под идентификатором CVE-2026-111497, а также известной как Node2Shell и Broccoli2Shell), которая затрагивает написанную на языке C библиотеку декомпрессии Brotli, встроенную в среду Node.js и многие другие программные платформы.
Уязвимость затрагивает версии Brotli с 1.0.3 по 1.0.9, а также версии 1.1.0 и 1.2.0. О проблеме сообщалось под разными названиями, поскольку она была сначала обнаружена в среде Node.js, прежде чем выяснилось, что тот же дефект в декомпрессоре Brotli затрагивает программное обеспечение в различных технологических средах.
Масштаб влияния и затронутые системы
Хотя название HTTP2Shell отражает ее потенциальное влияние на клиентов и серверов протокола HTTP, уязвимость не ограничивается только HTTP/2 и распространяется на любые приложения, зависящие от распаковки данных Brotli, контролируемых злоумышленниками. К потенциально уязвимым приложениям относятся:
- Популярная среда выполнения Node.js.
- HTTP-библиотеки на языке Python, такие как urllib3, requests, httpx и aiohttp, при настройке на работу с уязвимым декомпрессором Brotli.
- Экстренные обновления безопасности, выпущенные Microsoft для противодействия уязвимости в платформе .NET, поскольку ее эксплуатация позволяет повысить привилегии в уязвимых системах.
Механизм эксплуатации и технические последствия
Уязвимость представляет собой дефект переполнения буфера (Buffer Overflow), при котором поток специально сформированных данных Brotli активирует операцию подстановки недействительных блоков, которую декомпрессор обрабатывает как действительную и ошибочно интерпретирует как запрос на дополнительные входные данные. Продолжая добавлять байты входных данных во внутренний восьмибайтовый буфер, запись выходит за разрешенные границы и повреждает соседнюю память.
В технических отчетах, опубликованных кибербезопасной компанией Imperva, отмечается, что успешная эксплуатация этой уязвимости может привести к сбоям в работе приложений, раскрытию содержимого конфиденциальной памяти и вплоть до удаленного выполнения кода (RCE).
Что меняется на практике и как исправить проблему?
Хотя на данный момент нет отчетов, подтверждающих эксплуатацию уязвимости в реальных кибератаках, наличие доступных концептуальных эксплойтов (PoC) требует быстрых действий от системных администраторов и разработчиков.
- Немедленные обновления: Доступны обновленные версии для устранения уязвимости в Google Brotli (1.0.10, 1.1.1 и 1.2.1), Node.js (версии 22.23.4, 24.22.1 и 26.12.1), а также в затронутых библиотеках Python.
- Дополнительные меры: После установки обновлений администраторам необходимо перезапустить затронутые процессы, а также пересобрать и повторно развернуть образы контейнеров (Containers).
- Временные обходные пути: Если немедленное обновление невозможно, рекомендуется полностью отключить поддержку Brotli в приложениях на Python и заблокировать входящие запросы Brotli на уровне прокси-сервера или брандмауэра.