
Дыра в Brotli вынудила Node.js и Microsoft срочно латать
Обновить только системную библиотеку мало: Node.js и программы со своей копией Brotli нужно обновлять отдельно и перезапускать.
Фото: BleepingComputer
В Brotli, открытой библиотеке сжатия данных от Google, нашли критическую уязвимость CVE-2026-111497. Её прозвали HTTP2Shell, а также Broccoli2Shell и Node2Shell. Ошибка позволяет повредить память программы и, по данным Node.js и компании Imperva, удалённо выполнить на ней чужой код. Microsoft в воскресенье, 25 октября, выпустила экстренное обновление для .NET.
Brotli сжимает веб-страницы и файлы, чтобы они быстрее передавались по сети. Её декодер встроен в Node.js — среду, на которой работает огромное число серверов и веб-сервисов. Уязвимы версии Brotli с 1.0.3 по 1.0.9, а также 1.1.0 и 1.2.0.
Как работает атака
Ошибку в декодере вызывает специально испорченный блок данных. Библиотека принимает его не за ошибку формата, а за просьбу дать ещё данных. В итоге она дописывает байты в восьмибайтовый буфер и выходит за его границы, повреждая соседнюю память.
Атаковать можно с двух сторон. Злоумышленник отдаёт сжатый ответ программе, которая скачивает данные по ссылке, или отправляет сжатый запрос серверу. Несмотря на название, проблема не ограничена протоколом HTTP/2. Под угрозой любое приложение, которое распаковывает присланные извне данные в формате Brotli.
Кроме Node.js уязвимы популярные Python-библиотеки для работы с сетью: urllib3, requests, httpx и aiohttp, если они используют старый декодер Brotli. Microsoft предупредила, что на системах с уязвимой версией .NET ошибка позволяет повысить привилегии.
Что обновлять
Исправления вышли в Google Brotli 1.0.10, 1.1.1 и 1.2.1, в Node.js 22.23.4, 24.22.1 и 26.12.1, а также в Python-пакетах Brotli 1.2.1 и brotlicffi 1.2.1.0. Google и Node.js выпустили стабильные исправления 21 октября, публично об ошибке рассказали на следующий день.
Готовые эксплойты, то есть рабочие примеры атаки, уже опубликованы. О реальных атаках BleepingComputer пока не сообщает. Администраторам советуют обновиться, перезапустить процессы и пересобрать контейнеры. Блокировка входящих запросов в Brotli не спасает, потому что атака может прийти и в ответе сервера.
Это уже вторая крупная дыра в базовых веб-технологиях за неделю. Незадолго до неё хакеры начали взламывать серверы через PHP2Shell.
Источники: BleepingComputer — об уязвимости HTTP2Shell



